Я занят созданием хромовых расширений, которым нужно проверить список json-формата для URL-адресов и сравнить каждый раз, когда посещается новая вкладка или adres. Когда есть соответствие, ему нужно делать что-то ... Но сейчас я не могу использовать переменные изнутри функции, я думал, что это что-то с глобальными и локальными переменными, но я не могу это понять. Переменная i не может достигать u = request.dom;
Когда я проверяю ее за пределами addListener в console.log
, я получаю undefined.Chrome extensions variable acces
мой код:
Background.js (JQuery-1.11.3.js, amplify.js загружен):
loadedwebshops = amplify.store('webshops');
(function loadShops() {
if (typeof loadedwebshops != 'undefined') {
} else {
// load from server
$.ajax({
url: '../shoplist.json',
dataType: 'json',
data: {}
}).done(function(data, textStatus, jqXHR) {
// update the cache
amplify.store('webshops', data, {
expires: 60000
});
loadedwebshops = amplify.store('webshops');
//populate.Shops(data);
}).fail(function(jqXHR, exception) {
}).always(function() {
});
// alert("server");
if (typeof loadedwebshops === 'undefined') {
location.reload();
}
}
setInterval(loadShops, 60000);
}
)();
chrome.extension.onMessage.addListener(function(request) {
u = request.dom;
requestedUrl(u);
});
$(document).ready(function() {
var webshops = loadedwebshops["webshops"];
console.log(webshops);
function requestedUrl(u){
console.log(u);
}
});
Main.js:
var d = document.domain;
chrome.extension.sendMessage({
dom: d
});
Манифест:
{
"background": {
"page": "background.html"
},
"browser_action": {
"default_icon": "icons/actions/1.png",
"default_title": "toolbar"
},
"content_scripts": [{
"all_frames": true,
"js": ["lib/jquery-1.11.3.js", "lib/amplify.js", "lib/main.js"],
"matches": ["http://*/*", "https://*/*"]
}],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"description": "extension",
"icons": {
"128": "icons/icon128.png",
"16": "icons/icon16.png",
"48": "icons/icon48.png"
},
"manifest_version": 2,
"name": "toolbar",
"version": "1.1",
"permissions": ["http://*/*", "https://*/*", "tabs", "cookies",
"notifications", "contextMenus", "webNavigation", "webRequest",
"webRequestBlocking", "unlimitedStorage", "storage"
]
}
Какие переменные вы возникают проблемы с доступом? Это ваша проблема: http://stackoverflow.com/q/23667086/2336725 – Teepeemm
Спасибо за комментарии, это мой первый вопрос .. Я отрегулирую его сразу. У меня проблема с переменной 'u'. Я могу предупредить его внутри addListener, но в 'console.log' он говорит undefined. 'u = request.dom;' u заполняется URL-адресом вкладки посещения. –
Я немного изменил код, теперь он должен начать функцию, которая передает значение. Еще ничего; requestUrl не определен. –