【问题标题】:Cannot read property 'contentDocument' of null无法读取 null 的属性“contentDocument”
【发布时间】:2015-04-04 23:03:36
【问题描述】:

我有一个 SVG 地图,它在“对象”标签的帮助下被插入到 HTML 中。然后,我尝试使用 jQuery 来访问地图的元素。 (特别是我尝试用红色填充一个矩形。)

HTML:

<object data="map.svg" type="image/svg+xml" id="map" width="1840" height="940"></object>

jQuery:

jQuery(window).load(function () {
        var svgobject = document.getElementById('map');
        if ('contentDocument' in svgobject) {
            var svgdom = jQuery(svgobject.contentDocument);
            jQuery("#rect4578", svgdom).attr("fill", "red");
        }
    });

在 chrome 中我收到一个错误:无法读取属性 'contentDocument' of null (匿名函数) n.event.duspatch n.event.add.r.handle

有什么问题?

谢谢。

【问题讨论】:

    标签: javascript jquery svg


    【解决方案1】:

    您是否仅在 chrome 中收到此错误? 调试代码并查看代码中的这一行

    var svgobject = document.getElementById('map')
    

    你在这里得到什么回报? svgobject 是否为空?因为您的 id 不是“映射”它的“imap”

    【讨论】:

    • 是的,它是“imap”,我没那么专心。但是,现在我收到以下消息:未捕获的安全错误:无法从“HTMLObjectElement”读取“contentDocumant”属性:阻止具有“null”来源的框架访问具有“null”来源的框架。协议、域和端口必须匹配
    • 我在这里找到了一些关于这方面的讨论(在 cmets 中)-benfrain.com/selecting-svg-inside-tags-with-javascript。但是,我的 html 和 svg aer 本地存储在我的 PC 上。而且我还不清楚我需要做什么才能让它发挥作用。
    • 尝试在 stackoverflow 上搜索您的新问题,或者这些链接可能会对您有所帮助 link link
    • 我不确定这个问题。您应该先尝试搜索,如果找不到任何解决方案,则创建一个新问题。祝你好运!
    【解决方案2】:

    idimap 而不是 map for getElement....

    【讨论】:

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