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

时间:2017-12-18 17:31:40

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

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

我已尝试使用以下方法生成自动点击,但这些方法都不起作用。

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

  

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

     

$(html).find('#button')。addEventListener('click',function(){   警报( “你好”); });

     

button.addEventListener('click',function(){       警报( “你好”); });

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

第一个命令出错 -

  

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'“

请帮帮我。感谢。

2 个答案:

答案 0 :(得分:0)

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

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

希望有所帮助:)

答案 1 :(得分:0)

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

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

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