簡體   English   中英

如何在頁面加載時自動點擊Chrome擴展程序?

[英]How can I make a Chrome extension automatically click a button when a page loads?

我正在嘗試創建一個Google Chrome擴展程序,在頁面加載時按下按鈕。 我已經能夠使用此代碼使用VBscript為Internet Explorer觸發按鈕:

IE.Navigate("javascript:changeIframe();")

但是,現在我需要通過擴展程序在Google Chrome中執行此操作。 但是,該按鈕沒有id:

<input type="button" value="Start!" onclick="javascript:changeIframe();">

這是我到目前為止所嘗試的,似乎沒有任何效果:

window.onload="javascript:changeIframe()";
javascript:changeIframe();
document.getElementById('').click();
document.getElementById('').submit();

看來, .click.submit沒有在谷歌,Chrome的JavaScript的定義?

奇怪的是,當我使用這個腳本時:

javascript:changeIframe();

在Chrome的javascript控制台中,它會自動按下按鈕,一切正常。 但是,當我在.js文件中放入相同的腳本時,它不起作用。

我只需要知道我必須在我的.js中放置什么才能在頁面加載時自動按下按鈕。

傳統的方法是注入代碼1

var scriptNode          = document.createElement ('script');
scriptNode.textContent  = 'changeIframe ();';

document.body.appendChild (scriptNode);


您通常也不必監聽onload ,因為默認情況下內容腳本將大致在此時觸發。



1擴展JS在“孤立世界”中運行,如果沒有一些不需要的技巧,就無法與頁面的javascript交互。

很高興你有一個解決方案,但我想我會告訴你另一種模擬點擊的方法。
通過這種方式,您不必注入代碼或知道onclick將運行的功能,只需獲取按鈕並模擬單擊....

// https://developer.mozilla.org/en/DOM/element.dispatchEvent
function simulateClick(obj) {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var canceled = !obj.dispatchEvent(evt);      
/*

  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }
  */
}

var what = document.querySelector('input[type="button"][value="Start!"]');
simulateClick(what);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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