$("Iframe").contents() 在本地主机上工作但不能在线? [复制]

Posted

技术标签:

【中文标题】$("Iframe").contents() 在本地主机上工作但不能在线? [复制]【英文标题】:$("Iframe").contents() works on localhost but not online? [duplicate] 【发布时间】:2012-03-26 08:40:50 【问题描述】:

可能重复:jQuery/javascript: accessing contents of an iframe

如果我在本地主机上运行它,只要src 如果iframe 也在本地主机上,它就可以正常工作..

但我一上线,它就没有任何作用......

http://jsfiddle.net/WnwRc/9/

现在的目标只是提醒加载到 iframe 中的 html

【问题讨论】:

听说过Same origin policy吗? 也许this 会回答它。 @Rob W - 所以下载 fx ted.com 的 html 内容并将其替换为在线 url 的本地 url,这样我就可以在我自己的域上显示 ted.com 页面,然后在 iframe 中显示该页面,可以吗?还是违法? @BjarkeCK 来自Terms of use:“9. 请帮助传播 TED。”。如果你明确说明内容来自 Ted.com,并且链接正确,我认为站长不会追你。不过,不要把我的话当作法律建议。 【参考方案1】:

浏览器中的一项安全功能可防止您访问 iFrame 中的某些 DOM 对象,这些对象的 document.domain 属性与访问 iFrame 不同。

如果您尝试通过 iFrame 进行一些网页抓取或自动化操作,恐怕效果不佳。

这里有一个快速链接,其中包含有关 iFrame 的注意事项和注意事项的大量信息: http://softwareas.com/cross-domain-communication-with-iframes

【讨论】:

是的,你用服务器端报废(谷歌的方式),或者你可以使用 FF 扩展程序或 Chrome 扩展程序在带有 JS 的浏览器上执行此操作【参考方案2】:

加载事件不像 jquery 网站那样正确地冒泡

http://api.jquery.com/load-event/

注意:.live() 和 .delegate() 方法不能用于检测 iframe 的加载事件。 load 事件没有正确地冒泡父文档,并且 event.target 不是由 Firefox、IE9 或 Chrome 设置的,这是执行事件委托所必需的。

【讨论】:

以上是关于$("Iframe").contents() 在本地主机上工作但不能在线? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

怎么让iframe的大小跟随内容的大小自动调整?

打开网页后 自动点击 iframe 内 超链接 ,超链接仍然显示在 iframe内

javascript怎么操作iframe页面里面的dom元素?

iframe从一个页面跳转到另一个页面

jQuery怎么给iframe赋值

iframe中body大了,总是有滚动条出现怎么办?