-1

Facebookのニュースフィードにいくつかの機能を追加したり、DOMツリーからいくつかの要素を削除したりできるchrome-pluginを書いています。しかし、私には問題があります。最初にページが表示され、この DOM 要素が追加または削除された直後にのみ表示されました。しかし、私はページがこれらの要素ですでに表示されているようにしたいと考えています。どうやってするの?

マニフェスト.json

{
    "manifest_version": 2,
    "name": "Facebook plugin",
    "version": "1.0",
    "description": "Facebook plugin",
    "permissions": ["tabs", "https://www.facebook.com/*", "webNavigation", "background", "<all_urls>"],
    "background": {
        "scripts": ["background.js"]
    },
    "content_scripts": [
        {
            "matches": ["https://www.facebook.com/*"],
            "js": ["jquery.js"]
        }
    ]
}

background.js

chrome.webNavigation.onDOMContentLoaded.addListener(function(details) {

    chrome.tabs.executeScript(details.tabId, {
        code: 
                ' $("#home_stream li div.attachmentText span.caption:contains(\'youtube.com\')").closest("li").empty();'
    });

});

jquery.js -最新の jquery ライブラリ リリース。私が間違っていることを教えてください。ありがとうございました。

4

1 に答える 1

0

私はこの問題を解決しました。
1. 「content_scripts」セクションのmanifest.jsonに追加 - css: ["style.css"]:

"content_scripts": [
    {
        "matches": ["https://www.facebook.com/*"],
        css: ["style.css"],
        "js": ["jquery.js"]
    }
]

2. style.cssに次のコードを追加します。

body {display: none;}

3. background.jsに追加

chrome.webNavigation.onDOMContentLoaded.addListener(function(details) {    

    chrome.tabs.executeScript(details.tabId, {
        code: 
            ' $("#home_stream li div.attachmentText span.caption:contains(\'youtube.com\')").closest("li").empty();' +
        ' $("body").css("display", "inline");'
    });
});
于 2013-10-09T11:04:33.977 に答える