3

由于我的 Chrome 扩展在 Mac 下无法运行,我将代码分解并发现了问题:

背景.js

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

脚本.js

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

jQuery 已加载并显示两个警报,但未触发 click 事件。当我直接在页面上的 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"]
    }
    ]
}
4

1 回答 1

1

对于 Chrome 19-,您必须注入代码并使用网站自己的方法来切换 Episode。

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

(为了找出必须调用哪个函数,我检查$().data('events')了控制台中的对象:)$('#Hoster_30').data('events').click[0].handler
在 Chrome 20+ 中,使用.trigger('click')内容脚本可以正常工作:

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

谢谢罗布·W。在这里非常欢迎我并回答问题

于 2012-08-05T10:33:13.747 回答