用双引号执行任何脚本

时间:2012-02-19 12:38:14

标签: javascript quotes

如何在双引号中运行任何javascript? 例如:

<input type="text" value="" />

我想在value =“”(双引号)中执行警报或任何其他代码。像:

<input type="text" value="<script> onmouseover=alert(0);</script>" />

代码在页面上显示为字符串。那么无论如何用双引号执行脚本?

3 个答案:

答案 0 :(得分:0)

输入对象有自己的事件,你必须分配给它们

例如,当鼠标悬停在警报上时执行警报:

<input type="text" value="testbox" onMouseOver="alert('testing');"/>

答案 1 :(得分:0)

<input type="text" onmouseover="alert(0);" />

答案 2 :(得分:0)

啊,我明白了,你可能想做这样的事情:

<input type="text" onchange="try{eval(this.value)}catch(e){}" />

每次更改标记时,内联脚本都会尝试执行其value属性中的内容(并且会使元素模糊)。 try catch块是这样的,通常不起作用的任何东西都不会被执行。 eval函数解析字符串并将其作为Javascript代码运行。

当你使用eval时,你会接受各种形式的攻击,所以除非这纯粹是出于教育或内部目的,否则我建议你不要使用它。