gpt4 book ai didi

internet-explorer - 对象不支持此属性或方法

转载 作者:行者123 更新时间:2023-12-04 09:00:10 25 4
gpt4 key购买 nike

将我的 GWT 版本升级到 2.5.0 后,当我将鼠标悬停在图表 (SVG) 上时遇到问题。

该问题仅出现在 IE 中(Chrome 和 Firefox 不受影响)。

消息是

2 exceptions caught: (TypeError) description: Object doesn't support property or method 'contains' number: -2146827850: Object doesn't support property or method 'contains';



该问题似乎是由 DOMImplTrident 中的新方法引起的。类名为 isOrHasChildImpl .

我想知道有没有其他人遇到过这个问题或知道除了不使用 IE 的解决方法;)

谢谢

最佳答案

这只是一个猜测,但我怀疑您的问题来自 DOMImplTrident.isOrHasChildImpl 方法的第 53 行。

return (parent === child) || parent.contains(child);

我进一步猜测您在 IE10 上遇到错误?我认为您针对 IE10 运行的原因是因为 GWT 没有通过单独的 DOM 实现正式支持 IE10。它最终会在 IE10 上使用 DOMImplIE9 实现,而后者又使用来自 DOMImplTrident 的上述方法来实现其“isOrHasChild”。我想知道第47行是否
if (parent.nodeType == 9) {

实际上并没有为文档节点返回 9 并因此进入文档节点的“else”语句并在它尝试访问“包含”方法时爆炸。也许 IE10 没有像以前版本的 IE 那样实现那些节点方法?没有把握。

我没有方便的 IE10 来测试这个理论,但这可能是一个很好的起点。您可以创建自己的 JSNI 方法,该方法进行类似的节点调用以测试该理论并查看“document.nodeType”是否确实返回 9 或“node.contains”是否在各种类型的节点上爆炸。

如果这确实是问题所在。您可以尝试一些方法来解决/避免该问题。
  • 尝试在您的入口点连接 GWT.setUncaughtExceptionHandler() 并完全忽略错误。
  • 在调用问题代码并忽略异常的“您的”方法之一中围绕代码块粘贴 try/catch。
  • 尝试将以下元标记添加到您的 html 文件中,看看在 IE10 中呈现为 IE9 是否可以解决问题。
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
  • 创建一个扩展 DOMImplIE9 的自定义 DOMImpl 并使用您自己的自定义方法覆盖“isOrHasChild”方法,您可以控制发生的情况。例如
    package com.google.gwt.dom.client;

    public class DOMImplIE9Custom extends DOMImplIE9 {
    @Override
    public boolean isOrHasChild(Node parent, Node child) {
    // Do your own thing
    }
    }

  • 然后,您使用延迟绑定(bind)通过您的自定义实现来切换 DOMImplIE9,如下所示:
    <replace-with class="com.google.gwt.dom.client.DOMImplIE9Custom">
    <when-type-is class="com.google.gwt.dom.client.DOMImpl"/>
    <when-property-is name="user.agent" value="ie9"/>
    </replace-with>

    即使我偏离了基础并且您没有使用 IE10,您仍然可以尝试上述想法来解决该问题。要么这样做,要么进行最终修复并完全停止使用 IE 并避免数小时的压力 :) 希望这至少可以帮助您走上正轨。

    关于internet-explorer - 对象不支持此属性或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944071/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com