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

How to set the src of an iframe to the current visited site using java script?

本文关键字:访问 站点 设置 src 脚本 java iframe 何使用      更新时间:2023-09-26

我想以独立于客户端web浏览器分辨率的固定分辨率拍摄当前访问站点的快照。因此,我想以固定的分辨率将活动站点加载到一个隐藏的iframe中,并从那里拍摄快照。

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

这是安全问题吗?

测试了嵌套的iframe,在不同的浏览器中,它的.src等于document.href.url。只有Chrome允许在第一级嵌入这样的iframe,其他浏览器则阻止上述递归,并将iframe留空。(顺便说一句,看起来Firefox和Opera最多允许10个和20个不同的嵌套iframe,其他浏览器如Google Chrome和Explorer无限添加iframe。)您可以使用以下代码通过稍微修改的url将父页面嵌入到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" />

测试脚本在这里。

类似的东西

if(!document.getElementById('hiddenFrame'){
document.appendChild('<iframe id="hiddenFrame"src='+document.location+'style="display:none"'/>);}

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