javascript中警报的这种用法是什么?

时间:2015-06-20 12:16:00

标签: javascript html xss

这是一个xss代码:

<img src=x onerror="javascript:window.onerror=alert;throw 1">

我无法理解alert的用法。为什么我们在alert之后不需要括号?我无法理解浏览器的行为。浏览器会弹出一个框并显示Uncaught 1。看起来浏览器首先弹出一个警告框,然后将异常字符串填入框中。但是,我不太确定这是怎么发生的。顺便说一句,我用chrome测试了这个。

1 个答案:

答案 0 :(得分:4)

window.onerror本身就是一个功能。您可以将其称为功能名称或更好,功能参考。 alert也是函数的名称,可以称为函数引用。

因此,他们将onerror映射到alert,即onerror事件发生时,会有警报。

window.onerror是一个事件处理程序,alert可以警告发送到参数中的任何内容,现在onerror事件处理程序将事件信息发送到alert是的,当发生错误时,你会得到错误。

有关window.onerror的参数和工作的更多信息。他们的语法是:

window.onerror = funcRef;

funcRef被称为alert()