Javascript 获取iframe内容';当iframe托管代码可以';无法访问
可能重复:Javascript 获取iframe内容';当iframe托管代码可以';无法访问,javascript,jquery,asp.net,iframe,resize,Javascript,Jquery,Asp.net,Iframe,Resize,可能重复: 如问题标题所述。我正在寻找一种方法来调整我的iframe的高度根据我的iframe托管的网站的高度。因为我需要去掉iframe的垂直滚动。同时,我不想给iframe设置一个非常大的静态高度,因为当我有小高度的页面时,这是不好的 我找到了许多与我的问题相关的解决方案,但无法解决我的问题: (*)在iframe承载内部页面时更改iframe的高度很容易。您只需将以下脚本添加到iframe onload事件: var frame = (document.getElemen
如问题标题所述。我正在寻找一种方法来调整我的iframe的高度根据我的iframe托管的网站的高度。因为我需要去掉iframe的垂直滚动。同时,我不想给iframe设置一个非常大的静态高度,因为当我有小高度的页面时,这是不好的 我找到了许多与我的问题相关的解决方案,但无法解决我的问题: (*)在iframe承载内部页面时更改iframe的高度很容易。您只需将以下脚本添加到iframe onload事件:
var frame = (document.getElementById) ? document.getElementById("YourFrameID") : document.all["YourFrameID"];
var pageh = document.frames("YourFrameID").document.body.scrollHeight;
frame.style.height = pageh + 'px';
但正如您所知道的,当iframe的src
位于具有iframe的域之外时。脚本崩溃,并生成“拒绝访问”错误消息
(*)最后,我知道如果我能够访问iframe托管的页面,我的目标就可以实现。也许这种技术被称为“跨域通信”
但是,我的iframe旨在托管来自外部网站的页面,并且无法访问这些网站
这个问题已经被问过很多次了。让我们通过提供一个最终答案来解决这个问题:)
或者。。比如说,实现我的特定目标是不适用的
请注意,我使用的是ASP.NET 4.0
谢谢,由于跨域安全原因,这是不可能的。您可以使用中间人技术。不要将iframe直接指向预期目标,而是将其指向服务器上的页面,该页面:
我认为您要寻找的真正答案是,不,没有跨域资源的合作,就没有可靠的方法来实现这一效果。正如您所说,这已经被问过并回答过:由于浏览器的跨域策略,这是不可能的。是的,我的意思是“跨域通信”需要我访问iframe将承载的页面代码。我没有。那么,你有什么建议?难道没有办法解决这个问题吗(这是由于安全原因,JavaScript不允许跨域通信。您不能从父页面修改外部站点中的任何内容。