簡體   English   中英

如何使用Greasemonkey啟用禁用按鈕?

[英]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/

參考在AJAX驅動的站點上選擇並激活正確的控件

您的目標站點在放置在輸入的祖先 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM