不能用php编写的javascript删除iframe中的元素

时间:2018-06-06 09:18:01

标签: javascript php html iframe

尝试删除iframe中的3个元素。负责删除元素主体onload上调用的元素的函数“Delete”不会运行。

 <html>
    <script>
        <?php 
    echo"function delete(){ 
    var elem0=document.getElementById('".$_GET['id']."').contentWindow.document.getElementById('".$id."');
    var elem1=document.getElementById('".$_GET['id']."').contentWindow.document.getElementById('".$id1."');
    var elem2=document.getElementById('".$_GET['id']."').contentWindow.document.getElementById('".$id2."');

    elem0.removeChild(elem0.childNodes[0]);
    elem1.removeChild(elem1.childNodes[0]);
    elem2.removeChild(elem2.childNodes[0]);
    }"; ?>
    </script> 

    <body onload="delete();">
        <div>
        <?php

    $page=$_GET['id'].".html";
    $id=down;
    $id1=gerar1;
    $id2=gerar; 

              echo '<iframe src="' .$page.'" id="'.$_GET['id'].'" frameBorder="0" width="70%" height="100%" align="left" scrolling="no" />';
              echo '</iframe>';
        ?>
    </div>

    <div>
    <?php
    echo'<iframe src="../../galeria/frame2_galeria.html" frameBorder="0" width="29%" height="600px" align="right" scrolling="yes" />    
    </iframe>';
        ?>
    </div>
    </body>

    </html>

2 个答案:

答案 0 :(得分:2)

delete()是一个关键字,解释了您的函数未被调用的原因

使用不同的函数名称而不是delete

所以它的作品......!

答案 1 :(得分:0)

我认为问题在于iframe没有加载完毕。

您只需要将onload事件处理程序添加到iframe或类似setTimeout的内容并将delete添加到其中:

iframe.onload = function() { delete(); };

应该有用。