检查 iframe 内容是不是已经加载

Posted

技术标签:

【中文标题】检查 iframe 内容是不是已经加载【英文标题】:Check if iframe content has been loaded already检查 iframe 内容是否已经加载 【发布时间】:2021-08-08 16:10:04 【问题描述】:

我正在尝试检查 iframe src 是否已在第一次添加,以便它不会在第二次再次加载它。 iframe 是使用下面给出的函数激活的,我正在使用 jQuery 来检查这一点。不幸的是,每次触发函数时都会调用console.log("loaded");。我做错了什么?


    <iframe id="iframe_01" style="
   position: fixed;
   margin: auto;
   height: 100%;
   width: 100%;
   overflow: hidden;
   z-index: 10;
   display: none;
   ">
    </iframe>

<script>
function Activate_iFrame() 

    //iframe start
    let iframe_01 = document.getElementById("iframe_01");

    iframe_01.style.display = 'Block';

    if ($("#iframe_01").find("iframe").contents().find("body")) 
        console.log("loaded");
        iframe_01.src = "LINK TO WEBSITE";
    

</script>

【问题讨论】:

I am trying to check if the iframe src has been already added the first time so that it does not load it again in the second time. 这与问题中的代码完全相反。问题中的代码是确定iframe 的内容中是否已经存在body,然后将内容完全更改为另一个URL。您能否将问题编辑得更清楚。 【参考方案1】:

您需要在代码中添加一个标志以停止第二次运行测试

let iframeLoaded = false;

function Activate_iFrame() 

    //iframe start
    let iframe_01 = document.getElementById("iframe_01");

    iframe_01.style.display = 'Block';

    if (!iframeLoaded &&$("#iframe_01").find("iframe").contents().find("body")) 
        console.log("loaded");
        iframeLoaded = true;
        iframe_01.src = "LINK TO WEBSITE";
    

【讨论】:

以上是关于检查 iframe 内容是不是已经加载的主要内容,如果未能解决你的问题,请参考以下文章

页面调用iframe,网站配置到服务器上之后,iframe部分的内容无法加载

如何检查 iframe 是不是已完全加载 PDF 文件

iframe如何使用javascript替换内容?

轮播内幻灯片的延迟加载内容(内容为oEmbeds/iframes)

webview部分手机无法加载iframe内容

JS 判断页面中的iframe中显示的内容是不是被拉到底部