私はこれを機能させるために過去2日間試みてきましたが、最後の手段としてここで尋ねています。メッセージ パッシング、いくつかのブログ、そしてもちろん Google のメッセージ パッシング ページに関連する、StackOverflow に関するすべての関連投稿を見てきました。
私が構築した APP は、何かを含むページ内のリンクを探し、その開始を置き換えます。たとえば、URL で「google.com」を検索し、先頭を「ask.com」に置き換えます。
私が抱えている問題は、この変数をローカルストレージ変数に保存したいということです。ただし、ページが更新されると、渡された新しい URL は使用されません。デバッグを容易にするために、簡略化されたバージョンを作成するために混乱を少し取り除きました。助けてください!すぐに毛がなくなります!
localStorage["talktest1"]
popup.js から渡された新しい URL に変更する必要がある URL が含まれています。次に置換スクリプトが読み込まれると、新しいtalktest1
変数が使用されますが、古い「www.google.co.uk」変数が引き続き使用されます。
Manifest.js
:
{
"name": "Talk Talk",
"version": "1.0",
"description": "Tests stuff.",
"browser_action": {
"default_icon": "img/icon16.png",
"default_popup": "popup.html"
},
"options_page": "options.html",
"permissions": [
"tabs", "*://*/*"
],
"background": {
"scripts": ["js/jquery-1.7.2.min.js","js/bg.js"]
},
"icons": { "16": "img/icon16.png",
"48": "img/icon48.png",
"128": "img/icon128.png" },
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["js/jquery-1.7.2.min.js","js/bg.js"],
"run_at": "document_end"
}
]
}
popup.js
:
$(document).ready(function() {
chrome.extension.getBackgroundPage().alert_this();
$('.link_change').click(function() { // when a link is clicked - url is grabbed from a 'href'
chrome.extension.sendRequest({localstorage: "http://www.something.com"}, function(response) {
var email = response.value;
chrome.extension.getBackgroundPage().alert_this();
});
return false;
});
});
bg.js
:
if(!talktest1){
var talktest1;
}
if(!localStorage["talktest1"]){
localStorage["talktest1"] = "http://www.google.co.uk";
}
talktest1 = localStorage["talktest1"];
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
localStorage["talktest1"] = request.localstorage;
talktest1 = request.localstorage;
sendResponse({value: localStorage.talktest1});
}
);
function alert_this(){
alert("localstore|" + localStorage["talktest1"]);
alert("talktest1|" + talktest1);
}
$("a[href*='google.com']").each(function(){
this.href = this.href.replace('http://www.ask.com',talktest1);
});