特定のサイトの拡張機能を作成して、現在持っていない追加の書式設定と共有オプションを提供したいと考えています。コンテンツスクリプトとバックグラウンド通信
私は正しく通信するための問題を抱えており、明確にレイアウトされた例はないようです。
マニフェスト:
{
"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"]
}
]
}
コンテンツスクリプト:背景HTMLの
$(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);
});
は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 Dev Toolsは定義されていないことを示します。私はいろいろな組み合わせを試しましたが、まだリスナーとリクエストを完全に把握することはできません。
私は本当に各サイトからメソッドを呼び出す方法を示しているきれいなサンプルを見たいと思います。
助けてくれてありがとう@abraham!以前はgotoItemをコンテンツスクリプトに移動しようとしましたが、jQueryリンクは正しくありませんでした。 – tmerrick