代码之家  ›  专栏  ›  技术社区  ›  eMRe

isset上的触发器单击问题(Php、jquery、iframe)

  •  0
  • eMRe  · 技术社区  · 14 年前

    我有一个小问题,我不知道原因。我设定的

    2-如果您提交表单,则print.php页面将自动打印。

    问题在第二个选项上。页面将自动完美打印,但如果我再次单击“打印”按钮,则不会再次打印页面。

    <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    
        <script type="text/javascript"> 
        function loadiFrame(src) 
        { 
            $("#iframeplaceholder").html("<iframe id='myiframe' name='myname' src='" + src + "' frameborder='0'  vspace='0'  hspace='0'  marginwidth='0'  marginheight='0' width='1'  scrolling='no'  height='1' />"); 
        } 
    
        $(function() 
        { 
            $("#printbutton").bind("click",  
                function() {  
                    loadiFrame('print.php');  
                    $("#myiframe").load(  
                        function() { 
                            window.frames['myname'].focus(); 
                            window.frames['myname'].print();     
                         } 
                     ); 
                } 
            ); 
        }); 
        </script>
    
    <?
    if (isset($_POST['formSubmit'])) 
    {
    echo "form submitted";
    ?>   
    <script type="text/javascript"> 
        $(document).ready(function(){ 
        $('#printbutton').trigger('click'); 
       });
    </script>  
    <? } ?>  
    </head>
    
    <body>
    <table border="1">
      <tr>
        <td><input type="button" id="printbutton" value="  Print  " /><div id="iframeplaceholder"></div></td>
      </tr>
    </table>
    
    
    <form action="auto.php" method="post">
    <input name="formSubmit" type="submit" value="Submit" />
    </form>
    </body>
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Mohammad    14 年前

    只有IFRAME不存在时,才应该调用LoADFrror函数。

    $(function() 
    { 
        $("#printbutton").click(  
            function() {
        if($('#myiframe').length==0){ 
                loadiFrame('print.php'); }
                $("#myiframe").ready(  
                    function() { 
                        window.frames['myname'].focus(); 
                        window.frames['myname'].print();     
                     }); 
            }); 
    }); 
    

    现在就试试。

        2
  •  0
  •   eMRe    13 年前

    这是火狐的一个漏洞。如果添加一个使每个iframe名称唯一的计数器,则该方法有效。