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

问题描述 投票:1回答:2

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

我尝试了以下方法来生成自动点击,但它们都不起作用。

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

$(HTML).find( “按钮”。)点击()。

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

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

它要么给我错误,要么没有用。

第一个命令出错 -

jquery.min.js:4拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src'self'blob:filesystem:chrome-extension-resource:”。要么是'unsafe-inline'关键字,哈希('sha256 -...'),要么是nonce('nonce -...')来启用内联执行。

我也尝试在manifest.json中添加它,但没有错误的变化 -

“content_security_policy”:“script-src'self''unsafe-eval'; object-src'self'”

请帮我。谢谢。

javascript jquery dom google-chrome-extension content-security-policy
2个回答
0
投票

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

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

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


0
投票

对于自动单击按钮,您可以使用jquery的trigger()方法,如下所示:

$( "#foo" ).on( "click", function() { 
alert( $( this ).text() );});
$( "#foo" ).trigger( "click" );

希望能帮助到你 :)

© www.soinside.com 2019 - 2024. All rights reserved.