【问题标题】:"Object doesn't support this property or method" error in IE11IE11 中的“对象不支持此属性或方法”错误
【发布时间】:2013-09-16 13:30:06
【问题描述】:

我收到了错误

严重错误:对象不支持此属性或方法 addeventlistener

在 IE 11 浏览器中访问 InfoPath 表单页面(使用启用 InfoPath 的列表表单,例如 displayifs.aspx)时。

此错误特定于 IE 11,页面在 IE 10 及以下版本中正常打开。根据this MSDN post,IE 11 支持 addEventListener。

有人对此有想法吗?

【问题讨论】:

    标签: sharepoint internet-explorer-11


    【解决方案1】:

    不幸的是,这破坏了其他东西。这是我在另一个 site 上找到的似乎对我有用的修复:

    我会说将X-UA-Compatible 保留为"IE=8",并将以下代码添加到您的母版页底部:

    <script language="javascript">
        /* IE11 Fix for SP2010 */
        if (typeof(UserAgentInfo) != 'undefined' && !window.addEventListener) 
        {
            UserAgentInfo.strBrowser=1; 
        } 
    </script>
    

    这修复了core.js 中的一个错误,该错误会错误地计算为 IE11 设置了UserAgentInfo.strBrowse=3,从而支持addEventListener。我不完全确定除此之外的细节,但保持 IE=8 和使用此脚本的组合对我有用。手指交叉直到我找到下一个 IE11/SharePoint“错误”!

    【讨论】:

    • 这应该被标记为答案。特别是因为下面的 Chris R 和 JoshC 提供的不良信息。使用 SharePoint 2010 时,不应将 X-UA-Compatible 标记更改为 IE8 以外的任何标记。这只涉及使用 SharePoint Web UI 编辑和维护网站的人员。如果您正在运行一个互联网站点,那么为匿名用户提供不同的 x-ua 标签是 99% 的安全性。阅读此内容以获取有关如何操作的信息。 francoisverbeeck.wordpress.com/2012/09/20/…
    • 从 2007 年到 2010 年升级迁移的网站的问题;网站仍在使用 UI 版本兼容性设置为 3 的 default.master 页面。将默认设置为 v4.master 并添加上述脚本解决了 InfoPath 表单的问题。
    • @user3116631 大家好我已经尝试解决这个问题好几个星期了,我将上面的代码添加到 v4.master 页面但它没有工作,如何将默认设置为 v4.master ?谢谢
    • 这是添加它的正确位置吗?
    【解决方案2】:

    在修复可用之前(如果有修复)解决此问题的最佳方法是强制用户使用 IE 兼容模式。

    最好在母版页中使用&lt;META http-equiv="X-UA-Compatible" content="IE=9"&gt;,以便您网站中的所有页面都能获得解决方法。

    【讨论】:

    • 这个可行,刚刚用IE11测试,我添加到_Layout.cshtml页面
    • 与我的 wordpress 网站配合得很好,谢谢。在 header.php 中添加元标记
    【解决方案3】:

    当我们使用 IE 版本 11 访问企业 Intranet 上的 React 应用程序(使用 jQuery v3.1.1 的 react 版本 16.0.0 的 create-react-app)时,我们也遇到了这个问题。为了解决这个问题,我只是按照url 的说明进行操作,下面也列出了这些说明:

    1. 通过确保主文件的第一行是:&lt;!DOCTYPE html&gt;

    2. ,确保将 DOCTYPE 设置为标准模式
    3. 通过在头部标签中包含以下元标签来强制 IE 11 使用最新的内部版本:&lt;meta http-equiv="X-UA-Compatible" content="IE=edge;" /&gt;

    注意:在本地机器(localhost:3000)上使用 IE 以开发模式访问应用程序时,我没有遇到此问题。 该问题仅在访问部署到公司 Intranet 上的 DEV 服务器的应用程序时出现,可能是因为某些公司范围的 Windows 操作系统策略设置和/或 IE Internet 选项。

    【讨论】:

      【解决方案4】:

      在母版页使用或全局使用的JS文件中添加代码sn-p。

      <script language="javascript">
      if (typeof browseris !== 'undefined') {
          browseris.ie = false;
      }
      </script>
      

      更多信息请参考博客:http://blogs2share.blogspot.in/2016/11/object-doesnt-support-property-or.html

      【讨论】:

        【解决方案5】:

        解决这个问题的原因是我在加载 core.js shim 之前渲染了一个 React 组件。

        import ReactComponent from '.'
        import 'core-js/es6'
        

        在 ReactComponent 之前加载 core-js 解决了我的问题

        import 'core-js/es6'
        import ReactComponent from '.'
        

        【讨论】:

          【解决方案6】:

          我遇到了类似的问题,令人惊讶的是,这次元标记不起作用。 原来我现在合作的公司有这个enterprise mode setting,它的优先级高于元标记。

          我们无法更改设置导致政策问题。幸运的是,我真的不需要任何花哨的功能,只需要 jQuery 的基本用法,所以我的最终解决方案是将其版本切换到 1.12 以获得更好的兼容性。

          参考:jQuery - Browser support

          【讨论】:

            【解决方案7】:

            我们为 IE11 设置了兼容模式来解决问题:设置>兼容性视图设置>添加您的站点名称或如果您的门户位于 Intranet 中,请选中“在兼容性视图中显示 Intranet 站点”。

            IE 版本 11.0.9600.16521

            为我们工作,希望这对某人有所帮助。

            【讨论】:

              猜你喜欢
              • 2015-03-31
              • 1970-01-01
              • 1970-01-01
              • 2020-05-21
              • 2011-08-25
              • 1970-01-01
              • 2016-05-27
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多