【问题标题】:$("Iframe").contents() works on localhost but not online? [duplicate]$("Iframe").contents() 在本地主机上工作但不能在线? [复制]
【发布时间】: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,并且链接正确,我认为站长不会追你。不过,不要把我的话当作法律建议。

标签: javascript jquery iframe localhost


【解决方案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 设置的,这是执行事件委托所必需的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-04
    • 2013-07-08
    • 1970-01-01
    • 2018-12-08
    • 2015-04-09
    • 2018-10-27
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多