javascript - 我想在单击扩展名时自动单击网站上的按钮

标签 javascript jquery dom google-chrome-extension content-security-policy

目标-当用户单击特定页面上的 Chrome 扩展程序时,它会自动单击该网站页面上的特定按钮。

我尝试了以下方法来生成自动点击,但没有一个起作用。

我从content-script.js获取background.js中的DOM并运行以下命令(在后台页面中使用这些命令用于其他目的,同样的错误在内容脚本中运行时)。

$(html).find(".button").click();

$(html).find('#button').addEventListener('click', function() { alert("hello"); });

button.addEventListener('click', function() { alert("hello"); });

它要么给我错误,要么不起作用。

第一个命令错误-

jquery.min.js:4 Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.

我也尝试将其添加到我的 ma​​nifest.json 中,但错误没有变化-

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

请帮助我。谢谢。

最佳答案

您可以在后台脚本中尝试以下代码:

chrome.browserAction.onclicked.addListener(tab => {
    chrome.tabs.executeScript(tab, {code:
        `var theButton = document.querySelector("button");
         if (theButton) theButton.click();`});
});

单击扩展程序的图标 ( browser action ) 时,它将单击事件网页的第一个按钮。如果您需要特定按钮,请在 document.querySelector 调用中优化选择器。

关于javascript - 我想在单击扩展名时自动单击网站上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873544/

相关文章:

javascript - 如何让多个按钮在同一页面上触发一个js函数

javascript - 如何设计长下拉的树形垂直菜单?

javascript - 我如何让 Jquery 比较两个选择器?

java - 使用本地 DTD 验证 XML,引发错误

php - 使用新的 simple_html_dom 获取链接和文本

html - 如何创建自定义 HTML 元素

javascript - 在 JavaScript 比较中应该使用哪个等号运算符(== vs ===)?

javascript - dhtmlx 网格只读复选框

javascript - 如何在 HTML 中显示可变内容?

jquery - 将 div 及其关联元素转换为 canvas jquery?