我是铬合金扩展的新手。我正在编写一个插件,在用户按下按钮时放大页面(非常新,)。但是,除非我允许不安全的脚本,否则它将不会运行,并且它不会转移到新页面,表面上是因为不安全的脚本。我正在做的是放大。是什么让不安全的脚本“不安全”?
我真正想知道的是,如果不是要求提供信息或直接访问他们的计算机,是什么使脚本不安全?
我是铬合金扩展的新手。我正在编写一个插件,在用户按下按钮时放大页面(非常新,)。但是,除非我允许不安全的脚本,否则它将不会运行,并且它不会转移到新页面,表面上是因为不安全的脚本。我正在做的是放大。是什么让不安全的脚本“不安全”?
我真正想知道的是,如果不是要求提供信息或直接访问他们的计算机,是什么使脚本不安全?
有三件事情作出一个脚本不安全的谷歌扩展:
这是一个常见的错误beginer(我做了它)。你不能把内联的Javascript语句。对于为例,你不能处理事件是这样的:
<img src="myImage.jpg" onclick="doSomething()">
的corect方式做,这是做定义一个ID为您的DOM元素,在我为例的形象,并设置事件处理程序中单独的JavaScript文件:
page.html中:
<img src="myImage.jpg" id="myImage">
<script src="script.js"></script>
的script.js:
//In vanilla Javascript :
document.getElementById("myImage").onClick(doSomething);
//In JQuery
$("#myImage").on("click", doSomething);
所有可以将字符串评估为javascript的函数都是不安全的。 所以eval
功能是不允许的,如new Function("return something.value");
只有本地脚本是安全的。如果您正在使用jQuery例程,则必须将该库包含在扩展中。通过CDN链接加载外部库被认为是不安全的。
这是一个快速浏览,你可以你如何采购文件阅读更多关于这一点,有谷歌浏览器扩展Content Security Policy
另一个要考虑这个限制的解释相关的。
例如,如果您使用http://
来源文件,但使用https://
访问该网站,则会收到不安全的脚本错误。
告诉我们你做了什么。如果不查看代码,我们无法知道发生了什么问题。 –
我正在研究!我不知道我是否被允许发布。这就是为什么我问一个一般的,描述性的问题,希望得到一个一般的,描述性的答案:) – kirk
Okey,所以我会尝试做一个普通的答案:-) –