Chrome扩展程序:按内容脚本将JQuery对话框注入页面

时间:2012-11-27 12:22:29

标签: jquery jquery-ui google-chrome-extension

我已尝试this solution注入jquery对话框,但没有成功。 我在页面上有一个对话框,但它显示为透明。 似乎没有正确加载jquery-ui.css。我做错了什么?

2 个答案:

答案 0 :(得分:2)

解决方案是下载 jquery-ui.css 文件并将其放入插件目录并链接到 manifest.json 中,如下所示:

"content_scripts": [{
"matches": ["http://*/*", "http://jquery.com/*"],
    "css": ["jquery-ui.css"],
    "js": ["jquery.js", "jquery-ui.js", "popup.js"]
}]

我不知道为什么以下注射不起作用:

chrome.browserAction.onClicked.addListener(function (tab) {
    chrome.tabs.executeScript(null, {
        file: "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/themes/ui-lightness/jquery-ui.css",
        runAt: "document_start"
    },

    chrome.tabs.executeScript(null, {
        file: "http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js",
        runAt: "document_start"
    },

    function () {
        chrome.tabs.executeScript(null, {
            file: "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"
        },

        function () {
            chrome.tabs.executeScript(null, {
                file: "popup.js"
            });
        });
    });
 });

所以我下载了 jquery.js jquery-ui.js ,将它们放到插件目录中并链接到 manifest.json 中提及以上。然后取出所有注射剂:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null, 
        {
            file:"popup.js", 
            runAt:"document_start"}
        }););

结果我在任何页面上都格式化了jQuery对话框

答案 1 :(得分:0)

我最后一次需要通过在Ajax请求中请求整个CSS并将其放入标头中,我必须直接将CSS写入文档。我不记得我为什么这样做,但我很确定我不会这样做,当我找到一个更好的解决方案。还要注意,如果只是对话框,你真的不需要整个CSS。对于我的“解决方案”,最好只使用你真正需要的东西。