-3

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

4

2 回答 2

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.jsjquery-ui.js,将它们放到插件目录并链接到manifest.json中,如上所述。然后删除所有注射:

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

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

于 2012-11-28T06:08:46.073 回答
0

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

于 2012-11-27T13:07:04.313 回答