3

不起作用,因爲我的Chrome擴展程序的Mac下沒有工作,我倒打破了代碼,並發現了問題:jQuery.trigger(「點擊」)在Chrome擴展程序在Mac

background.js

chrome.browserAction.onClicked.addListener(function(tab){ 
    alert("Goin to"); 
    chrome.tabs.executeScript(tab.id, {file: "script.js"}); 
}); 

的script.js

$('#Hoster_30').trigger('click'); 
alert("Clicked"); 

jQuery是加載和兩個警報被示出,但CLIC k事件沒有被觸發。當我直接在頁面上的js控制檯中輸入觸發器時,它工作正常,在Windows下它也可以在附加工作。

這裏我的manifest.json

{ 
    "name": "MacAddon", 
    "version": "0.1", 
    "permissions": ["tabs", "http://*/", "https://*/"], 
    "background": { 
     "scripts": ["background.js"] 
    }, 
    "browser_action": { 
     "default_title": "MacAddon" 
    }, 
    "content_scripts": [ 
    { 
     "matches": ["http://*.kinox.to/*", "http://*.streamcloud.eu/*"], 
     "js": ["jquery.js"] 
    } 
    ] 
} 
+0

你應該編輯你以前的問題,包括代碼(而不是創建一個新的代碼)。但是,好的工作,你現在已經創建了一個演示來重現問題。那就是我們,SO用戶,喜歡看, – 2012-07-29 14:22:47

+0

你在哪個頁面測試擴展名? 'http:// kinox.to /'和'http:// streamcloud.eu /'都沒有ID爲'Hoster_30'的元素。 – 2012-07-29 14:26:27

+0

http://www.kinox.to/Stream/Die_Simpsons.html每個電影和連續劇都有一個Hoster_30 – Gumble 2012-07-29 14:31:48

回答

1

使用Chrome 19-,你必須inject the code並使用該網站的自己的方法來切換插曲。

var s = document.createElement('script'); 
s.textContent = "getPlayerByMirror($('#Hoster_30'), 'Auto');"; 
s.onload = function() { 
    this.parentNode.removeChild(this); 
}; 
document.head.appendChild(s); 

(要了解哪些功能已經被調用,我inspected the $().data('events') object in the console$('#Hoster_30').data('events').click[0].handler)。
在Chrome中20+,使用.trigger('click')從內容腳本運行良好:

$('#Hoster_30').trigger('click'); 

感謝Rob W。在這裏歡迎我這麼大,answering the Question

+0

沒有爲我工作,或者我使用本地createEvent和dispatchEvent – 2017-10-22 04:01:23