我正在嘗試在本網站的表單上插入一些資料。我可以手動將游標放在輸入上并鍵入數字,例如999. 如果我重新加載頁面,我輸入的值仍然存在。
我可以使用 Google Chrome 控制臺(在開發工具上)并使用元素 ID 來訪問此值OSICtrlE1-23:
> document.querySelector("#OSICtrlE1-23").value
'999'
好的。顯然,直到某個時候,我還可以使用 JS 和控制臺改變這個值:
> document.querySelector("#OSICtrlE1-23").value = 888
它似乎在 UI 上作業。我可以在 UI 上看到新值。
此外,當我使用 JS 在控制臺上請求值時,它似乎可以在控制臺上作業:
document.querySelector("#OSICtrlE1-23").value
'888'
不幸的是,如果我重繪 頁面,UI 上的值會回傳999(這是之前手動插入的值)。
1 - 為什么會這樣?
2 - 網站是否會限制我可以使用控制臺執行的操作?如果有,怎么知道?
3 - 我應該使用控制臺上的哪個命令,以便通過計算插入的資料與手動插入的資料完全一樣?
uj5u.com熱心網友回復:
@玉蓮是對的。在仔細檢查了事件的處理方式后,一項逆向工程發現這blur是關鍵。因此,調度事件就成功了!
查看按預期作業的代碼:
const updateInput = (value) => {
const input = document.querySelector("#OSICtrlE1-23");
input.value = value;
input.dispatchEvent(new Event('blur'));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/510243.html
