尝试将我的书签集成到Chrome扩展程序中,但由于某种原因它无效

时间:2011-11-24 23:26:16

标签: google-chrome bookmarklet

我正在尝试将我的书签集成到Chrome扩展程序中,但由于某些原因它无法正常工作

我尝试插入:

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

我尝试了两个popup.html; background.html

我也在清单文件中:

"permissions": [   
"tabs",
"http://*/*",
"https://*/*",
"notifications",
"contextMenus"
]

我的demo.js应该会打开一个弹出窗口,您可以在其中输入搜索短语,然后打开维基百科页面。 (例子来自这里:http://coding.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/

我测试了正常的bookmarklet代码并且效果很好但是现在当我尝试将它与我的Chrome扩展程序集成时,我似乎无法使其正常工作。当我按下扩展图标时,它只会打开一个小的空白扩展窗口。

我尝试了很多其他组合,而不仅仅是我在这里所说的。 你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

chrome.tabs.executeScript "background_page": "background.html", "browser_action": { "name": "Search Wikipedia", "icons": ["icon.png"] }, 工作的简单示例,如果你想看一下那就是http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/make_page_red/

将manifest.json与manifest.json进行比较,以查找设置browserAction和后台页面的方式的差异(根据我的博客文章,您不应该有一个弹出页面)。具体来说,你可能想要的东西:

// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(
        null, {code:"document.body.style.background='red !important'"});
});

以下是他们如何设置他们的browserAction以在单击扩展图标时调用executeScript(),这听起来像你想要的那样:

background.js

在您的情况下,它看起来更像是这样(在background.html中 - 看看他们的<script src="background.js"></script>manifest.json;确保您的background.html包含{{1}像他们一样):

// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null, {file: "demo.js"});
});