私は、Tumblr の外観を変更する BeautifyTumblr というアドオンの作成者です。Chrome 拡張機能が更新されたことを自動的に検出し、変更ログをユーザーに表示したいと考えています。chrome.runtime.onInstalled.addListener フックを備えたイベント ページを使用して、更新が発生したことを検出し、拡張機能のテキスト ファイルから変更ログを取得します。これはすべて正常に機能し、それを自分のコンテンツに転送したいときchrome.tabs.sendmessage を介してスクリプトを実行しても機能せず、何も起こらず、エラーも何も起こりません。私は困惑しています。
どんな助けでも大歓迎です!
イベントページ:
chrome.runtime.onInstalled.addListener(function (details) {
"use strict";
if (details.reason === "install") {
} else if (details.reason === "update") {
var thisVersion = chrome.runtime.getManifest().version, xmlDom, xmlhttp;
xmlDom = null;
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", chrome.extension.getURL("changelog.txt"), false);
xmlhttp.send(null);
xmlDom = xmlhttp.responseText;
chrome.tabs.query({'url' : 'http://www.tumblr.com/*'}, function (tabs) {
if (tabs.length > 0) {
var mTab = tabs[0].id;
chrome.tabs.update(mTab, {active: true});
setTimeout(chrome.tabs.sendMessage(mTab, {beautifyTumblrUpdate: xmlDom}), 500);
} else {
chrome.tabs.create({'url' : 'http://www.tumblr.com/dashboard'}, function (tab) {
setTimeout(chrome.tabs.sendMessage(tab.id, {beautifyTumblrUpdate: xmlDom}), 500);
});
}
});
}
});
コンテンツ スクリプトの関連コード:
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
"use strict";
window.alert('test');
if (request.beautifyTumblrUpdate) {
window.alert(request.beautifyTumblrUpdate);
} else if (request.beautifyTumblrInstall) {
window.alert(request.beautifyTumblrInstall);
}
}
);