我正在将亚马逊链接本地化器转换为 Chrome 扩展程序。我目前正在处理的错误是:
未捕获的 ReferenceError:未定义 checkAmazonLinks
发布此 JSON 的 URL 是:https ://freegeoip.net/json/?callback=checkAmazonLinks 我在我的 JS 文件中这样称呼它:
function findLocation() {
if (typeof google != "undefined" && google.loader.ClientLocation != null) {
var strCountry = google.loader.ClientLocation.address.country_code;
checkAmazonLinks(strCountry)
console.log(strCountry)
} else {
objScript = document.createElement("script");
objScript.src = "https://freegeoip.net/json/?callback=checkAmazonLinks";
document.getElementsByTagName("head")[0].appendChild(objScript);
}
这是我的 manifest.js:
{
"name" : "amazon linker",
"version" : "0.1",
"manifest_version" : 2,
"description" : "A simple extension that turns all Amazon links on a page into localized affiliate links",
"permissions" : [ "http://*/*","https://*/*"],
"browser_action": {
"default_title": "Amazon Linker"
},
"content_security_policy": "script-src 'self' https://google.com; https://freegeoip.net; object-src 'self'",
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["amazon-localiser.js"]
}
],
"web_accessible_resources": ["amazon-localiser.js","amazon-localiser.php"]
}
我曾尝试从 freegeoip 的 json 请求中删除回调,但随后我收到一条错误消息
Uncaught SyntaxError: Unexpected token :
我的 .js 中有一个调用 的函数checkAmazonLinks()
,它是在 之后加载findLocation()
的,我尝试重新排列顺序,但这没有帮助。想法是checkAmazonLinks()
在 .js 中定义,然后findLocation()
通过具有相同函数名称的回调检索 JSON。我如何克服这个错误?