2014-10-12 58 views
0

我正在嘗試使用jquery單擊帶有< a>標記的元素。它可以在Chrome控制檯中運行,但它不適用於該擴展。我究竟做錯了什麼?代碼在控制檯中運行,但不在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) 
+0

In _background.js_?根據需要閱讀我指導您[架構概述](https://developer.chrome.com/extensions/overview#arch)。 – Xan 2014-10-12 09:27:46

+0

我回答了你的問題(實際上是相同的)[** here **](http://stackoverflow.com/a/26323929/3889449)。 – 2014-10-12 10:14:08

回答

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"] 
    }] 
} 
聲明它

希望它有幫助。

相關問題