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