$("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内