【问题标题】:getSVGDocument() returns null in SafarigetSVGDocument() 在 Safari 中返回 null
【发布时间】:2015-10-10 15:30:57
【问题描述】:

我在尝试在 Safari 中调试网页时遇到了一些问题。在我的主页中,我有一个 iframe,我每三秒重新加载一次以更新主页上的标签。但是,当我尝试在 Safari 中使用它时,以下行为空

parent.document.getElementById(tagId).getSVGDocument();

我使用它来更新我主页上 SVG 对象的填充。页面似乎在此行之后停止了 javascript,因为它无法继续使用我主页上的其他功能。

有谁知道 Safari 中的 getSVGDocument() 可能有什么问题?在 IE 中一切正常。

提前致谢!

【问题讨论】:

  • 通过进一步研究,似乎只有 IE 能够找到 svgDocument,我在 Chrome 和 Firefox 中遇到了同样的问题。
  • 尝试通过 var loaded = parent.document.getElementById(tagId) 为 添加一个事件监听器; loaded.addEventListener('load', function () { //code } 但它似乎只是跳过了侦听器添加移动到下一部分。

标签: javascript jquery html svg safari


【解决方案1】:

getSVGDocument 不再使用,可能不支持最新版本的 SVG。

根据MDN Web Docs

访问代表 SVG 文档的 Document 的最佳方式是查看 HTMLIFrameElement.contentDocument(如果文档以 呈现)或 HTMLObjectElement.contentDocument(如果文档以元素呈现)

【讨论】:

    【解决方案2】:

    好的,我通过创建内联 SVG 解决了这个问题。从来没有让它与标签一起工作,但这是一个快速修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 2011-01-22
      • 2011-12-30
      • 2016-11-07
      • 1970-01-01
      • 2015-02-27
      • 2019-06-18
      相关资源
      最近更新 更多