Chrome扩展程序循环检查按钮错误

莫里斯公园

我正在尝试创建一个chrome扩展名,一旦单击chrome扩展名,脚本便会启动,并将每隔1毫秒循环检查一次ID为“ product-addtocart-button”的按钮。因此,一旦循环找到按钮,就需要立即单击它。

manifest.json:

{
    "description": "Click a button with ID=product-addtocart-button",
    "manifest_version": 2,
    "name": "click-product-addtocart-button",
    "version": "0.1",

    "permissions": [
        "activeTab"
    ],

    "background": {
        "scripts": [
            "background.js"
        ]
    },

    "browser_action": {
        "default_icon": {
            "32": "icon.png"
        },
        "default_title": "Click product-addtocart-button"
    }
}

background.js:

var button = document.getElementById("product-addtocart-button");
var time = 10;

chrome.browserAction.onClicked.addListener(function(tab) 
    {
    chrome.tabs.executeScript(tab[0],

        function waitForElementToDisplay(button, time) {
                if(document.querySelector(button)!=null) 
                {
                    document.getElementById(button).click();
                    return;
                }
                else 
                {
                    setTimeout(function() {
                        waitForElementToDisplay(button, time);
                    }, time);
                }
            }
        );
    }
);

popup.html:

<!doctype html>
 <html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <style>
      body {

      }
      #status {

      }
    </style>

          <script src="popup.js"></script>
  </head>
  <body>
  </body>
</html>

我收到这些错误:

browserAction.onClicked事件处理程序中的错误:

*这就是我的意思:图片1然后,这个错误

错误:表单tabs.executeScript(未定义,函数)的调用与定义tabs.executeScript(可选的整数tabId,对象详细信息,可选的函数回调)不匹配

*这使我指出了这一点: 图片2

我该怎么办?

伊万·诺科诺科(IvánNokonoko)

第三次回答问题(请停止发布相同问题的新问题):

根据规范,您必须像这样调用executeScript:

chrome.tabs.executeScript(tab.id,{code:"yourCodePackedIntoOneString"});

或者

chrome.tabs.executeScript(tab.id,{file:"yourCodeFile.js"});

但您正在打电话:

chrome.tabs.executeScript(tab.id,{function()etc...});

试试这个:

有一个名为myWaitingLoop.js的文件

function waitForElementToDisplay(){
    var button = document.querySelector("#product-addtocart-button");
    if (button){
        button.click();
    } else {
        setTimeout(waitForElementToDisplay,100);
    }
}  
waitForElementToDisplay();

然后,在您的background.js脚本中:

chrome.browserAction.onClicked.addListener(function(tab){
    chrome.tabs.executeScript(tab.id,{file:"myWaitingLoop.js"});
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序更新-Chrome网上应用店系统错误

来自分类Dev

Chrome扩展程序“未定义$”错误

来自分类Dev

Chrome扩展程序错误加载jQuery

来自分类Dev

Chrome自动突出显示扩展程序中的按钮

来自分类Dev

Chrome扩展程序中没有检查视图选项

来自分类Dev

Chrome扩展程序错误,显示“ onCommand”

来自分类Dev

将按钮注入网站(Chrome扩展程序内容脚本)

来自分类Dev

Chrome扩展程序弹出表单中的多个提交按钮

来自分类Dev

Chrome扩展程序:检查内容脚本是否已注入

来自分类Dev

如何使用Chrome扩展程序将按钮注入网页

来自分类Dev

Chrome扩展程序保存表单错误

来自分类Dev

Chrome扩展程序注入脚本获取错误

来自分类Dev

Chrome扩展程序“版本错误”

来自分类Dev

如何通过Chrome扩展程序工具检查<Suspense>组件?

来自分类Dev

Chrome扩展程序-使用热键单击页面上的元素(按钮)

来自分类Dev

如何在Chrome扩展程序中插入通知操作按钮?

来自分类Dev

Chrome扩展程序错误加载jQuery

来自分类Dev

Chrome会自动在扩展程序中突出显示我的按钮

来自分类Dev

Chrome扩展程序中没有检查视图选项

来自分类Dev

Chrome扩展程序错误,显示“ onCommand”

来自分类Dev

Chrome扩展程序如何响应按钮在页面中的单击?

来自分类Dev

压缩Chrome扩展程序按钮

来自分类Dev

Chrome扩展程序检测扩展程序内的按钮

来自分类Dev

Google Chrome扩展程序错误

来自分类Dev

Chrome扩展程序api不检查cookie是否存在

来自分类Dev

Chrome扩展程序注入脚本获取错误

来自分类Dev

[]循环检查按钮Chrome扩展程序不起作用

来自分类Dev

测试Chrome扩展程序-要求错误

来自分类Dev

Chrome 扩展程序网络检查器

Related 相关文章

热门标签

归档