[英]How can I enable a disabled button with Greasemonkey?
我的目標是這個網站: https : //ib.ing.cz/transactional-cz/#login/credentials
它有一個輸入表單,我可以填寫使用
document.querySelector('input[name=customer-id]').value = "1234567890";
但是,禁止讓我走得更遠的按鈕。 無論我嘗試什么,它都會保持這種狀態,直到我開始手動填寫表格。 如何啟用按鈕(最好以編程方式單擊它)? 我嘗試模擬按鍵或操縱按鈕的“禁用”屬性,但我沒有成功。
更新:我終於搞定了,我使用的代碼在這里: https : //greasyfork.org/en/scripts/375326-p%C5%99ihla%C5%A1-se-na-ing (出於某種原因,我不得不刪除答案的if / else語句,在腳本的上下文中條件不正確,即使它是在Firefox控制台中)
然而,當我點擊按鈕(手動或通過腳本)時,有一些更多的魔法阻止它工作,收到一條錯誤消息“網站亂序”。
事實證明,還需要添加“更改”事件。 回答中的原始鏈接引出了一個引用Firebug的舊問題,后者已被合並到Firefox中。 對我來說關鍵是使用調試器。 只需在網站上點擊右鍵並選擇“檢查此元素”即可。 然后,在檢查器中單擊這些小三角形后,可以找到與這些元素關聯的事件:
並且為了閱讀網站代碼,最好將他們發送的scrabmle放入這樣的美化器: https ://beautifier.io/
您的目標站點在放置在輸入的祖先 div上的keyup
事件上運行其“客戶端編號”驗證(以啟用該按鈕等)。
這意味着您必須在設置值后發送keyup事件,並確保事件從輸入中冒泡。
像這樣:
var cIdInpt = document.querySelector ('input[name=customer-id]');
if (cIdInpt) {
var keyupEvnt = new Event ('keyup', {bubbles: true} ); // no key code needed in this case.
cIdInpt.value = "1234567890";
cIdInpt.dispatchEvent (keyupEvnt);
}
else {
console.error ("cIdInpt not found.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.