代码在控制台中运行但在Chrome扩展程序中无效

时间:2014-10-12 04:15:25

标签: javascript jquery google-chrome google-chrome-extension

我试图点击带有<的元素a>使用jquery标记。它适用于Chrome控制台,但它不适用于扩展程序。我做错了什么?

这就是我尝试点击'

<a href="" id="roblox-confirm-btn" class="btn-large btn-negative">Yes<span class="btn-text">Yes</span></a>

这是我在控制台中使用的,它运行良好:

var thing = $("a#roblox-confirm-btn")
thing.click()

这是我在chrome background.js中使用的,它不起作用:

setTimeout(function() {
    //NOTE: 'click?' IS being printed into the console, and I'm getting no error
    console.log("click?")
    var thing = $("a#roblox-confirm-btn")
    thing.click()
}, 2000)

1 个答案:

答案 0 :(得分:0)

HTML及其事件位于页面或内容的上下文中,因此您需要在内容脚本中包含相同的内容并将其作为DOM的一部分注入,然后执行它。另外,我假设您已经使用jQuery脚本($)。

您可以尝试此修复:

第1步:在content_script.js中定义该代码

setTimeout(function() {
    console.log("click?")
    $("a#roblox-confirm-btn").click();
}, 2000);

第2步:在manifest.json中声明

{
  ...
  "content_scripts": [{
      "js": ["js/jquery.js", "js/content_script.js"]
    }]
}

希望它有所帮助。