Manifiest.json
{
"name":"MyExtension",
"version":"1.0",
"description":"MyExtension Description.",
"icons":{"128":"browseraction.png"},
"browser_action":
{
"default_icon":"icon.png",
"default":"Mi default title",
"popup":"popup.html"
},
"permissions":[
"http://*/*",
"tabs"
]
}
这是我的 popup.html
<html>
<head>
<script type="text/javascript">
var address = "http://www.google.com";
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = handleStateChange;
xhr.open("GET", chrome.extension.getURL(address), true);//This dont work
//xhr.open("GET", chrome.extension.getURL('/popup1.html'), true);//thisWork
xhr.send();
function handleStateChange()
{
if (xhr.readyState == 4)
{
alert(xhr.responseText);
}
else
{
alert('Not Yet');
}
}
</script>
</head>
<body>
</body>
</html>
我只想显示带有警报的html代码 我看过,http://code.google.com/chrome/extensions/xhr.html和其他资源,但只是不工作 提前谢谢
答案 0 :(得分:4)
您的代码不起作用,因为chrome.extension.getURL
不按预期工作。对于给定字符串,它会尝试将网址解析为Chrome扩展程序中的本地文件。
当http://www.google.com/
作为输入时,返回www.google.com
。 XHR请求未完成,因为URI无效(缺少协议[和路径])。此外,(浏览器操作)弹出窗口和内容脚本都是受跨域策略限制。
要创建跨域XHR请求,您必须在Background page文件中添加manifest.json
, at permissions
和添加URI。
这个答案提供了完整的演示: