亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Tampermonkey 腳本點擊事件在用戶與窗口交互之前什么都不做

Tampermonkey 腳本點擊事件在用戶與窗口交互之前什么都不做

函數式編程 2021-06-16 17:12:54
我正在嘗試解決自動登錄到https://account.booking.com/sign-in的腳本中的錯誤function clickButton (){  const msg = document.querySelector(".bui-form__error");  const button = document.querySelector(".bui-button");  if (msg && msg.id !== "loginname-error" ) {    console.log(msg.textContent);  } else if (button) {    button.click();  } else {    console.log("Not yet...");    return;  }}setInterval(clickButton, 200);大多數情況下,這工作正常。盡管 Chrome 會自動填寫用戶名字段,但它有時會顯示登錄名錯誤,出于我們的目的,我們可以安全地忽略它——但是,這有時會導致頁面出于某種原因對腳本無響應。用戶在頁面上所做的幾乎任何事情都會導致腳本繼續運行——按 F12 打開 Dom 檢查器,點擊頁面上的任何地方,甚至在控制臺上運行命令(就像“ a = document.querySelector...”一樣簡單)都會以某種方式踢腳本正常運行。我試圖按照以前的答案,實現triggerMouseEvent并運行鼠標懸停、鼠標按下、鼠標按下和點擊。這與簡單地使用click(). 由于單擊頁面上的其他地方可以修復它,因此我嘗試在其他元素上使用此類單擊事件,然后再在按鈕上使用它們;這也與簡單地使用click(). 我所看到的 Tampermonkey 腳本“在...之后工作”的唯一結果是頁面重新加載的 AJAX 問題,而不是用戶與窗口的交互。放置console.log("click")在點擊事件之后表明它到達點擊事件就好了。使用triggerMouseEvent,我記錄dispatchEvent如下:function triggerMouseEvent (node, eventType) {    var clickEvent = document.createEvent ('MouseEvents');    clickEvent.initEvent (eventType, true, true);    console.log(node.dispatchEvent (clickEvent));}它true按預期返回“ ”。我試圖在每次點擊之間發送一個鍵盤事件,如下所示:function pressf12(){  var event = new KeyboardEvent("pressF12");  event.keyCode = 123;  event.which   = 123;  event.altKey  = false;  event.ctrlKey = false;  event.shiftKey= false;  event.target  = window;  window.dispatchEvent(event);}這也沒有奏效。對于導致問題的原因以及可以采取哪些措施來解決問題,我完全沒有想法。這是加載頁面后在控制臺上顯示的內容(如果可能相關):[僅報告] 拒絕執行內聯事件處理程序,因為它違反了以下內容安全策略指令:“script-src saa.booking.com *.bstatic.com bstatic.com google-analytics.com 'self' 'nonce-6B8EKlfK9vqB8Uy' ”。啟用內聯執行需要“unsafe-inline”關鍵字、哈希(“sha256-...”)或隨機數(“nonce-...”)。content_script @ VM1347:61(匿名)@ VM1347:71
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

注冊一個虛擬帳戶后,我在 Chrome 中使用 Tampermonkey 和 Firefox 中使用了 Greasemonkey 嘗試了您的腳本。setInterval 延遲為 200,它們不起作用。您需要將 setInterval 延遲增加到 1000 并且它會起作用。


查看完整回答
反對 回復 2021-06-24
  • 2 回答
  • 0 關注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號