这是一个简单的扩展,它调用Xmlhttprequest将POST数据发送到表单。我还在js代码的开头/结尾添加了简单的消息框...从后台页面调用代码,并在manifest.json中授予了正确的权限。 但是,当我点击此扩展程序的按钮时,没有任何事情发生。
下面给出了扩展名的js代码 -
alert("Beginning of code block");
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","http://taurusarticlesubmitter.appspot.com/sampleform",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name=Arvind&description=Test description&email=arvind@taurusseo.com");
alert("End of code block");
另外,我将以下代码添加到background.html -
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(
null, {file: "cdr.js"});
});
chrome.browserAction.setBadgeBackgroundColor({color:[0, 200, 0, 100]});
</script>
最后,下面给出的是我的manifest.json -
{
"name": "My Second Extension",
"version": "1.0",
"background_page": "background.html",
"description": "The second extension that I made.",
"browser_action": {
"name": "Data in iframe",
"default_icon": "icon.png"
},
"permissions": [ "tabs",
"bookmarks",
"http://*/*",
"https://*/*",
"unlimitedStorage"
]
}
答案 0 :(得分:1)
我假设你的第一个代码块是cdr.js
?然后你不从后台页面运行它。相反,您的后台页面会加载尝试发送请求的内容脚本。内容脚本使用已注入的页面的权限运行。因此,如果该页面没有权限向taurusarticlesubmitter.appspot.com发送请求,那么内容脚本也将没有必要的权限。
如果您的内容脚本需要执行特权操作(例如向第三方页面发送请求),则应该send a message to the background page并且后台页面必须执行此操作。