2015-07-02 50 views
1

我是铬合金扩展的新手。我正在编写一个插件,在用户按下按钮时放大页面(非常新,)。但是,除非我允许不安全的脚本,否则它将不会运行,并且它不会转移到新页面,表面上是因为不安全的脚本。我正在做的是放大。是什么让不安全的脚本“不安全”?

我真正想知道的是,如果不是要求提供信息或直接访问他们的计算机,是什么使脚本不安全?

+2

告诉我们你做了什么。如果不查看代码,我们无法知道发生了什么问题。 –

+0

我正在研究!我不知道我是否被允许发布。这就是为什么我问一个一般的,描述性的问题,希望得到一个一般的,描述性的答案:) – kirk

+2

Okey,所以我会尝试做一个普通的答案:-) –

回答

7

有三件事情作出一个脚本不安全的谷歌扩展:

联JavaScript

这是一个常见的错误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

1

另一个要考虑这个限制的解释相关的。

例如,如果您使用http://来源文件,但使用https://访问该网站,则会收到不安全的脚本错误。