如何使用java脚本将iframe的src设置为当前访问的站点?

时间:2012-08-03 11:39:14

标签: javascript iframe web

我想以固定分辨率拍摄当前访问过的网站的快照,与客户端网络浏览器分辨率无关。 因此,我想在具有固定分辨率的隐藏iframe中加载活动网站,并从那里获取快照。

现在我的问题是:如何在iframe中加载我当前所在的同一网站。加载其他页面工作正常,但我无法在iframe中加载相同的网站。

这是一些安全问题吗?

2 个答案:

答案 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" />

The test script is here.

答案 1 :(得分:0)

这样的东西
  

if(!document.getElementById('hiddenFrame'){
  document.appendChild('&lt; iframe id =“hiddenFrame”   src ='+ document.location +'style =“display:none”'/&gt;);   }

在关闭BODY标记之前将脚本放在页面底部,或者使用像jQuery这样的库。