【发布时间】:2016-10-28 21:20:17
【问题描述】:
我正在尝试制作一个 chrome 扩展程序,它会不断检查 ID 为“product-addtocart-button”的按钮,一旦找到它就会点击。
我通过在线学习和研究获得了这个 javascript。我对javascript不太了解,所以我真的不知道出了什么问题。
我的旧 javascript 文件非常简单,我已经对其进行了设置,因此当我点击扩展按钮时,该按钮会被自动点击。
代码:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id,{
code: "document.getElementById('product-addtocart-button').click();"
});
});
现在,根据研究,我(尝试)添加了一个功能,在单击扩展按钮后,脚本将循环检查实际的扩展,然后在找到后单击它。
background.js:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id,{
function waitForElementToDisplay(#product-addtocart-button, 10) {
if(document.querySelector(#product-addtocart-button)!=null) {
alert("document.getElementById('product-addtocart-button').click()")
return;
}
else {
setTimeout(function() {
waitForElementToDisplay(#product-addtocart-button, 10);
}, 10);
}
}
});
});
当我点击 chrome 扩展按钮时,没有任何反应。知道发生了什么吗?
【问题讨论】:
-
id是字符串,所以把
document.querySelector(#product-addtocart-button)改成document.querySelector("#product-addtocart-button") -
嗨,如果这是我的新代码: chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript(tab.id,{ function waitForElementToDisplay("#product-addtocart-按钮", 10) { if(document.querySelector("#product-addtocart-button")!=null) { alert("document.getElementById('product-addtocart-button').click()") return; } else { setTimeout(function() { waitForElementToDisplay("#product-addtocart-button", 10); }, 10); } } }); });还是什么都不做?
-
你好像有语法错误,你不应该在
function waitForElementToDisplay附近有{ ... } -
检查您的 Javascript 控制台是否有错误消息。
-
定义函数时,形参必须是变量名,不能是字符串和整数。
标签: javascript jquery html google-chrome google-chrome-extension