我的互联网连接不稳定,希望通过Chrome扩展程序监控路由器日志。由于我刚开始编程,我决定创建一个新的选项卡browserAction调用一个html页面,其中只包含指向我的浏览器日志的HTTP-EQUIV =“REFRESH”。这样我摆脱了同样的原产地政策。自从没有原因或错误日志条目停止工作后,我就可以开始了。有人可以给我一些指示,告诉我如何让它恢复工作,改进这个并告诉我我的方法有多奇怪/错误? :)
的manifest.json:
{
"name": "Logview",
"version": "0.1",
"manifest_version": 2,
"description": "Logview Extension",
"browser_action": {
"default_icon": "icon.png",
"default_title": "Logview Extension"
},
"background": {
"page": "background.html"
},
"permissions": [
"tabs"
]
}
background.html
<html>
<head>
<script>
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({url: "redirect.html"});
});
</script>
</head>
</html>
将redirect.html
<head>
<meta HTTP-EQUIV="REFRESH" content="0; url=http://user:pass@192.168.1.1/logview.cmd">
</head>
请保持温和,这是我在这里的第一篇文章,在发布之前我研究了很多东西。元刷新是我能想出的唯一可以解决相同的原始危险或公共api,我不能在路由器关闭的情况下使用。所有明显的错误都是由于缺乏经验而不是疏忽造成的。我只是碰到了一堵墙而不再做任何事了。
一切顺利, 变形
编辑:将标题更改为...新标签(是...弹出窗口)
答案 0 :(得分:0)
你被被称为Content Security Policy的野兽所咬。别担心,你不是第一个遇到这种情况的人,我看到每周都会重复这个错误。
在跳转到解决方案之前,我想通过提出两个先前的答案来装备一个解决问题的工具:
阅读完最后一个答案后,您应该了解代码的问题,并了解解决方案如下:
background.html
<script src="background.js"></script>
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({url: "redirect.html"});
});
如果您的background page仅包含脚本,则只需使用清单文件中的background.scripts语法即可。然后,您不再需要background.html
。
manifest.json
(部分内容)"background": {
"scripts": ["background.js"],
"persistent": false
},
最后的说明:
"persistent":false
添加到您的清单文件中,以将您的背景页面转换为event page。大多数情况下,您的扩展程序无效,因此使用事件页面而不是后台页面可以节省内存。tabs
权限。如果您只想打开新标签页,则不需要它。