【问题标题】:"document.forms is not a function" with "document.forms(0)"“document.forms 不是函数”和“document.forms(0)”
【发布时间】:2017-07-11 16:18:29
【问题描述】:

我在新工作中维护了许多旧网站和 CMS 系统,但其中一个遇到了问题。 ASP 站点正在使用 JavaScript,而这一行今天停止工作(或比今天稍早):

document.forms(0)

控制台会报告Uncaught TypeError: document.forms is not a function。谷歌搜索后,我发现我可以将其替换为:

document.forms[0]

并继续前进,但是,此网站和文件中充斥着此参考。

谁能找到解释可能发生的事情? Chrome、IE 和 Firefox 无法正常工作,是否对浏览器或 JavaScript 进行了更新?我似乎在搜索中找不到document.forms(0)。奇怪。

【问题讨论】:

  • 我认为没有其他浏览器支持过。
  • 如果 ASP 站点只希望在 IE 中工作,那么我可以理解他们为什么会这样做。否则,方括号是正确的,括号是错误的。对于 Chrome / Firefox 等,没有办法解决这个问题 - 括号用于函数调用,而不是数组访问。
  • 你可能想把你的编辑as an answer
  • 刚刚@Bergi,谢谢。我已经很久没有在这个网站上发帖了。

标签: javascript internet-explorer document mozilla


【解决方案1】:

我将发布到目前为止的答案,就像 cmets 提到的那样,这不是所有浏览器的标准,它可以在 IE 中工作,但通常没有别的:

document.forms(0) //IE only

这是正确的方法:

document.forms[0] //All browsers (including IE)

我能够找到一篇文章(Mozilla 开发者网络)引用了圆括号 (link),说 document.forms(0)IE-specific ways to access elementsdocument.forms[0]W3C web standards replacements

为了确认,我对BrowserStack 进行了一些测试,发现IE 的所有版本都可以正常工作,除了Chrome 版本15 和16(BrowserStack 在他们系统上的前两个版本@ 987654331@).

使用以下代码,否则您的网站将仅与 IE 兼容:document.forms[0]

也许我的客户一直在使用 IE,只是切换到 Chrome 或其他东西。我还没有确认,该网站是否有更多的 Analytics 时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多