1
我期待为特定网站创建扩展程序,以提供目前没有的其他格式和共享选项。内容脚本和背景通信
我有问题让事情沟通得当,似乎没有一个清晰的例子。
清单:
{
"name": "Test",
"description": "Testing.",
"version": "1.0",
"background_page": "background.html",
"permissions": [
"tabs", "http://www.sitedomain.com/*"
],
"content_scripts": [
{
"matches": ["*://*.sitedomain.com/*"],
"js": ["jquery.min.js", "test.js"],
"css": ["test.css"]
}
]
}
内容脚本:
$(document).ready(function() {
alert('test js fired');
$("#ColumnContainer div.item").each(function() {
$(this).css("background-color", "skyBlue");
var itemId = $(this).children("a.itemImage").attr("href");
$(this).children(".details").append("<a href=\"javscript:void(false);\" onclick=\"gotoItem('" + itemId + "');\">Goto Item</a>");
});
});
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
alert('listener request');
alert(request);
});
背景HTML的JavaScript的:
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == "complete") {
if (tab.url.indexOf("sitedomain.com") > -1) {
chrome.tabs.executeScript(null, {file: "test.js"});
}
}
});
chrome.tabs.sendRequest(tabId, request, responseCallback);
function responseCallback() {
alert('response callback');
}
function gotoItem(itemId) {
alert('goto Item - ' + itemId);
}
上面的代码不会附加链接和改变客户端页面上的造型当加载sitedomain.com
时。然而,我还没有运气得到gotoItem
方法触发,Chrome开发工具显示未定义。我尝试了各种组合,但是还不能完全掌握听众和请求。
我真的很想看到一个干净的示例,只显示如何从每个站点调用方法。
感谢@abraham的帮助!我曾尝试将gotoItem移至内容脚本,但我没有正确的jQuery链接。 – tmerrick 2012-01-29 12:33:20