比方说我有一个名为example.com的网站,iframe嵌入了iframe.net域,现在我想读取iframe的内容并传递一些参数来显示文本消息.喜欢你用户名.
现在问题是这个无法在两者之间建立连接,甚至无法获得我使用的iframe的innerHTML
document.getElementById('myframe').contentWindow.document.body.innerHTML;
Run Code Online (Sandbox Code Playgroud)
它抛出错误"权限被拒绝访问属性"
有谁知道如何在跨域平台上读写
我有一个HTML页面,其中包含一个iframe,可加载任意页面。
<iframe id="siteframe" style="width: 400px; height: 400px;" src="http://www.cnn.com"></iframe>
Run Code Online (Sandbox Code Playgroud)
我希望能够获得页面的滚动位置内的JavaScript / jQuery的iframe中。在html / js方面,我还是有点绿色,但是我已经尝试了使用scrollTop和scrollLeft的几种不同形式,但是没有成功。这是一个无效的:
write($("#siteframe").contents().scrollLeft() + ", " + $("#siteframe").contents().scrollTop());
Run Code Online (Sandbox Code Playgroud)
这个代码什么也不会写(write是一种只附加到屏幕上文本的方法)。
如果我这样删除.contents()
:
write($("#siteframe").scrollLeft() + ", " + $("#siteframe").scrollTop());
Run Code Online (Sandbox Code Playgroud)
它至少会在屏幕上写入一些内容,但是无论iframe中实际的滚动位置在哪里,它始终为0,0。
在javascript中获取iframe中内容的x,y位置的正确方法是什么,以便我的外部页面(包含iframe)可以使用它?
我将在一个网站上托管我的应用程序.该应用将显示在其中的iframe内.我需要我的应用程序全屏显示,无论如何我可以改变那个iframe的大小,这将从我的应用程序中保存我的应用程序?我的应用程序和托管它的网站不是同一个域.
$("iframe", window.parent.document).css("width", "1000px");
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为该网站和应用程序不属于同一个域
当主要Window
想要向子iframe发送消息时 -
它将子项的Iframe url设置为其当前 url + hash(表示数据).
但iframe将如何获得新数据?
我们有4个选项:( 我不是在谈论新的api,例如postMessaage
XDM库)
孩子正在轮询新的哈希值(setTimeout)
主窗口可以调整iframe的大小(iframe必须注册onResize
)
OnHashChange事件可以在iframe上使用
销毁/创建使用"onload"将msg(javascript函数!)发送到其"SameDomainIframe"的代理iframe parent.frames['samedonain'].sendData(...)
这是我的问题:(关于选项#2(调整大小事件)):
根据这篇文章:
在Firefox,Opera,Google Chrome和Safari中,只有在更改浏览器窗口大小时才会触发onresize事件.在Internet Explorer中,当浏览器窗口或元素的大小发生更改时,将触发onresize事件.
题 :
这个调整大小的东西有没有任何跨浏览器解决方案?
我不想要用户调整浏览器大小的情况,iframe会重新读取数据!
我想要读取数据只有当我向iframe发送消息并手动调整大小时
javascript ×4
jquery ×4
html ×3
iframe ×3
asp.net ×1
cross-domain ×1
html5 ×1
mootools ×1
scroll ×1