我想以固定分辨率拍摄当前访问过的网站的快照,与客户端网络浏览器分辨率无关。 因此,我想在具有固定分辨率的隐藏iframe中加载活动网站,并从那里获取快照。
现在我的问题是:如何在iframe中加载我当前所在的同一网站。加载其他页面工作正常,但我无法在iframe中加载相同的网站。
这是一些安全问题吗?
答案 0 :(得分:1)
测试嵌套的iframe,其.src
在不同的浏览器中等于document.href.url
。只有Chrome允许在第一级嵌入此类iframe,其他浏览器会阻止上述递归并将iframe保留为空。 (作为旁注,看起来Firefox和Opera最多只允许10个不同的嵌套iframe,其他浏览器如谷歌Chrome和资源管理器无限地添加iframe。)您可以使用以下代码在iframe中嵌入父页面,通过稍加修改的网址:
function load_iframe(addr) {
var iframe = document.getElementById('iframe1');
if (addr == document.location.href) {
if (addr.indexOf('?') == -1) {
addr += '?dummy_string';
} else {
addr += '&dummy_string';
}
}
iframe.src = addr;
}
HTML示例:
<a href="" onclick="event.preventDefault();load_iframe(this.href);">This page</a>
<iframe id="frame1" src="" style="width:100%; height:500px" />
答案 1 :(得分:0)
像
这样的东西if(!document.getElementById('hiddenFrame'){
document.appendChild('&lt; iframe id =“hiddenFrame” src ='+ document.location +'style =“display:none”'/&gt;); }
在关闭BODY标记之前将脚本放在页面底部,或者使用像jQuery这样的库。