在外部域上使用 Javascript 访问 Iframe
我正在寻找一种方法来访问 IFRAME 上页面的只读属性。 具体来说,我想阅读选集。 显然我无法阅读它,因为该文档位于另一个域中。
有办法阅读它们吗?
I'm looking for a way to access read-only properties of a page on a IFRAME.
Specifically I would like to read the selection. Apparently I can't read it because the document lies on another domain.
Is there a way to read them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我过去曾使用 document.domain 来解决这个问题。 不过,您只能使用它,前提是 iframe 和外部页面共享相同的域,即 www.example.com 和 ifrm.example.com。 我还听说过一种名为 JSONP 的东西,即使没有共享域,它显然也可以解决这个问题。 很多 Google API 都使用这个。
I've used document.domain to solve this problem in the past. You can only use this, though, it the iframe and outer page share the same domain, i.e. www.example.com and ifrm.example.com. I've also heard of something called JSONP which apparently solves this problem even if there is no shared domain. Mmany Google API's use this.
您的浏览器不允许您访问其他域上的任何内容。 你运气不好。
就 JSONP 而言,这是解决跨域问题的一种方法。 简而言之,它的工作方式是你向它传递一个 javascript 函数名称和一些请求,它返回一个包装在你的函数中的 json 对象,如下所示:
当你发出这个请求时,你将它的响应粘贴到脚本标记中,这又在加载时执行,调用您的“myFunction”,它必须存在于您这边。
仅当服务器支持 JSONP 时才有效。 如果它返回纯 JSON,那么你就不能在 javascript 中使用它。
your browser wont allow you to access anything that lives on another domain. you are out of luck.
as far as JSONP goes, that is one way to get around cross domain problems. the way it works in a nutshell is you pass it a javascript function name, and some request, and it returns a json object that is wrapped inside your function like:
when you make this request, you stick the response of it into a script tag, which in turn is executed on load, calling your "myFunction" which must exist on your side of things.
this only works if the server supports JSONP. if it returns plain JSON, as many of them do you cant use it in javascript.