【问题标题】:Issue with document.createEvent on IE11IE11 上的 document.createEvent 问题
【发布时间】:2016-08-25 22:56:30
【问题描述】:

我在我的应用程序中使用document.createEvent() 在 javaScript 中创建事件。我的机器上有 IE11。我已经在本地测试了该应用程序,并且代码运行良好,然后我将代码更改部署到 DEV 环境并在同一浏览器上进行了测试,并且它也在那里工作。但是,当我在 QC 环境中部署我的应用程序时,我观察到它在浏览器控制台中引发了异常。因此,在 QC 环境中,此更改不起作用。

我已更改为 window.event,然后它可以在所有环境中运行。

我们有基于 struts 的应用程序,部署在 WebSphere 应用服务器上。

有人知道为什么会出现这个问题吗?应用服务器上是否有任何可能导致此问题的配置?

谢谢,

杰伊·帕特尔

【问题讨论】:

  • 这是一个潜在的 X/Y 问题。你问事件。为什么不问问你想对这个事件做什么。或许我们有更好的解决方案
  • 其实我们有内置的格式化功能,可以将10位号码格式化成美国电话号码格式。此格式函数在 keypress 和 keydown 事件上被调用,并且事件通过格式函数传递。像 onkeypress = "format(this, this.value, event)"。现在,我想在页面加载时调用这个函数。因此,在从 javascript 函数调用格式函数时,我必须传递事件对象。所以,我是这样写的。
  • 如果你展示了这个函数,我们可能会在没有事件的情况下重写它。还有为什么在传递 this 时传递 this.value
  • @mplungjan:实际上,它是古老的代码,在千处使用。我无法摆脱这一点,即使我的应用程序不支持 jQuery :)。所以,我可以简单地使用它。我来回答我的问题,为什么会出现这个问题你知道吗?实际上它应该适用于所有环境,但不适用于 QC。所以,这是在骚扰我,因为我必须向我的前辈解释,我没有任何线索。

标签: javascript internet-explorer-11


【解决方案1】:

这只是客户端行为,与 WebSphere 或 Struts 无关。

这听起来与 IE 为您连接的不同服务器环境选择不同的“兼容模式”设置完全一样。我们自己解决了这个问题,因为我们的一个环境在我们公司的域中,而我们的其他环境在我们客户的域中。例如dev.mycompany.comtest.customer.com.

IE 使用许多标准来确定是在“兼容模式”还是“标准模式”下呈现,包括针对特定域检查的 Compatibility view list,以及某个站点是否在您的“受信任站点”中组。

因此,我会检查您的一个或两个环境中的受信任站点,检查 Microsoft 的列表(以上链接),可能会在本地 IE 设置中添加或删除适当的域(例如,如 Fix site display issues with Compatibility view 中所述),或者也许可以在 HTML 中添加标题,明确告诉 IE 使用某种模式。

You can also check which Zone the site belongs to via the IE File > Properties menu.

另一个相关问答:https://stackoverflow.com/a/13287226

【讨论】:

  • 谢谢,我们已使 IE 11 的 QA URL 与某种注册表设置兼容。这就是为什么它不起作用。谢谢@dbreaux
猜你喜欢
  • 1970-01-01
  • 2018-04-10
  • 2014-06-10
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多