【问题标题】:What is the name of this function declaration syntax only working in JScript (IE)? [duplicate]这个仅在 JScript (IE) 中有效的函数声明语法的名称是什么? [复制]
【发布时间】:2014-02-16 23:51:54
【问题描述】:

我最近在网上看到了这段代码:

function window::onload() {
    alert('onload!');
}

这种(奇怪的)语法仅在 Internet Explorer(在我的情况下为 IE 8)中有效,我不确定它是如何被调用的,所以我可以搜索它。

我只是想知道是否有一些与此类函数相关的文档,如果有,它们是如何调用的?

【问题讨论】:

  • 对我来说导致 IE 出现错误...
  • 这不是合法的javascript。
  • 我知道,但 IE 8 将其识别为有效的 JScript 并在加载时执行警报。
  • 是的,它看起来像是一个特定于 IE 的扩展,允许您定义某些类型的事件处理程序。

标签: javascript internet-explorer jscript


【解决方案1】:

这是 JScript 中的自动事件绑定,类似于 VBScript 中的Object_EventName 命名约定。

见:Scripting Events

据说它已在 Internet Explorer 的更高版本中被删除,就像其他一些很少使用的非标准功能一样。

【讨论】:

  • 不是它本身被删除,而是IE从jScript切换到javascript...
  • @dandavis:你对此有什么参考吗?我从来没有听说过这样的开关,据我所知,它仍然使用最新版本的 Chakra JScript 引擎; IE 11.
  • JScript 只是一个名称。我可能应该说 ECMAScript,因为我们正在讨论语义。如果不允许有人说“JavaScript”,那就是 M$。重要的变化是 ES5 合规性,IE 从未在 ES3 和 JScript 的早期版本中寻求或实现这一点。获得可互操作的 ES5 合规性意味着专有的纯 JScript 语法将不起作用……我并不是暗示他们与 Sun 达成了交易。
【解决方案2】:

事件处理函数定义的 MS-ES5EX ECMAScript 扩展

http://msdn.microsoft.com/en-us/library/ff955429.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-10-23
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多