我正忙于创建一个 chrome 扩展,它需要检查 json 格式的 url 列表,并在访问新标签或地址时进行比较。当有匹配时,它需要做一些事情......但是现在我无法从函数内部访问变量,我认为这是具有全局和局部变量的东西,但我无法弄清楚。我无法到达的变量是
当我在我未定义u = request.dom;
的 addListener 之外检查它时。console.log
我的代码:
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);
}
});
主.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"
]
}