【问题标题】:Cross-browser Access html content of object tag跨浏览器访问对象标签的html内容
【发布时间】:2013-01-04 08:09:12
【问题描述】:

我有一个带有数据属性的object 标记,指向来自同一域的 html 文件。

我想访问 html 的内容。

HTML:

<object id="object" width="420" height="360" data="jsp/index.html"></object>

JS:

var object = document.getElementById("object").contentDocument;
var html = object.getElementById("tmpl").innerHTML

以上代码在除IE7之外的所有浏览器中都可以使用

请帮我在IE7中访问object标签的DOM内容

【问题讨论】:

  • 不要使用 contentDocument,而是尝试使用 contentWindow 。这可能有效,我认为它支持 IE。请告诉我它是否适合你。
  • 不,我也尝试过使用它。没有运气:(
  • 您确定您的代码可以正常工作吗?在我的 Chrome、Safari 浏览器、IE8(IE8 和 Document(标准)模式)中,您的示例都不起作用。 Chrome 和 Safari 接受第一行,但不接受第二行。 innerHTML 的结果是'null'。
  • jsperf.com/objectvsiframevsdiv 在这里查看。它在除IE7 之外的所有浏览器中都能正常工作
  • 如何将其放入div 并尝试访问?

标签: javascript html cross-browser object-tag


【解决方案1】:

好的,所以我尝试根据您提供的代码稍微玩一下,我发现了一些重要的事情,首先是:

1>我首先尝试在firebug中获取这样的html内容:

console.log(document.getElementById("iframe").contentDocument.innerHTML);

我将在这里附上我的萤火虫结果:

所以你可以看到这里有一个权限被拒绝。

2> 同样,我也尝试了对象,这就是我得到的:

从这里很明显,由于 Same Origin Policy 而失败。

我不知道您是如何访问它们的,但对我来说,这个域和主机无法访问。这是猜测,也是您无法获取对象 id 内容的原因。我建议您使用 Cross-site HTTP requests or the CORS way 来完成这里的工作。

【讨论】:

    猜你喜欢
    • 2020-02-06
    • 1970-01-01
    • 2011-12-07
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多