3

私の 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 が読み込まれ、両方のアラートが表示されますが、クリック イベントはトリガーされません。ページの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 以降の場合、コードを挿入し、ウェブサイト独自のメソッドを使用してエピソードを切り替える必要があります。

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 に答える