2014-11-01 230 views
0

我想自动关闭一个由window.open()函数打开的Firefox中的窗口。我已经搜索了堆栈溢出论坛,发现这些链接:自动关闭浏览器窗口

1)How do I automatically close a webpage? 2)Automatically Close current window and open new window with new URL address

但因为我不是非常习惯使用JavaScript,我不能适当地执行代码。

请在下面找到打开窗口的代码 - 需要自动关闭。但是在生成的html文件中插入a会使其无效。

<script language="JavaScript" type="text/javascript"> 
function Clickheretoprint(vpid,vage,vroom,vname,vsex,vdoc,vdat) 
{ 

    var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,"; 
     disp_setting+="scrollbars=yes,width=300, height=200, left=100, top=25 resizable=yes"; 
    //var content_vlue = document.getElementById("T_PID").value; 


    var docprint=window.open("","",disp_setting); 
    docprint.document.open(); 
    docprint.document.write('<html>'); 
    docprint.document.write('<body style="margin:0.01in 0.01in 0.01in 0.01in; width:3in;height:2in;position:absolute;" onLoad="self.print()">'); 
    docprint.document.write('<table height="25%">'); 
docprint.document.write('<tr>'); 
    docprint.document.write('<td style=" font-weight: bold;" align="left">Regd : '+vpid+'&nbsp;&nbsp;&nbsp;Date :'+vdat+'</td>'); 
    docprint.document.write('</tr>'); 
    docprint.document.write('<tr>'); 
    docprint.document.write('<td style=" font-weight: bold;" align="left">Name : '+initCap(vname)+'</td>'); 
    docprint.document.write('</tr>'); 
    docprint.document.write('<tr>'); 
    docprint.document.write('<td colspan=2 align="left"; ><B>Age :</B>'+vage+'&nbsp;&nbsp;&nbsp;<B>Category :</B>'+vsex+'</td>'); 
    docprint.document.write('</tr>'); 
    docprint.document.write('<tr>'); 
    docprint.document.write('<td colspan=2 style="font-weight: bold;" >'+vdoc+' &nbsp;&nbsp;&nbsp;Room:'+vroom+'</td>'); 
    docprint.document.write('</tr>'); 
    docprint.document.write('</table>'); 
    docprint.document.write('<table height="25%">'); 
    docprint.document.write('<tr><td style="height:1in;width:100%;Font-family:CODE 39;"> <center>'); 
    docprint.document.write('<font face="CODE 39" size="7">'); 
    docprint.document.write('*'+vpid+'*'); 

    docprint.document.write('</font>'); 
    docprint.document.write('</center></td></tr>'); 
    docprint.document.write('</table>'); 
    docprint.document.write('</body></html>'); 
    docprint.document.close(); 
    docprint.focus(); 
} 

请让我知道如何编辑生成的文件,以便它在3秒后自动关闭。

谢谢!

PS:稍微详细的答案将不胜感激,因为我对这个领域颇为陌生。

回答

0

CODEPEN

试试:

<button onclick="openWin()">Open and Close after 3s</button> 
<script> 
    var myWindow; 
    function openWin() { 
     myWindow = window.open("", "myWindow", "width=200, height=100"); 
     myWindow.document.write("<p>This is 'myWindow'</p>"); 
     setTimeout(closeWin, 3000); 
    } 

    function closeWin() { 
     myWindow.close(); 
    } 
</script> 
+0

不工作。窗口保持打开状态。 – 2014-11-01 11:21:41

+0

您是否尝试过CODEPEN? 在我的浏览器中(FF)它可以工作,窗口在3秒后关闭...... 如果您在codeplayground中尝试过它,例如JSfiddle和Stackoverflow,它不会工作,因为页面会阻止IFrame内的脚本打开和关闭新窗口。 – 2014-11-01 11:31:50

+0

哦...在CODEPEN中起作用。但是当我在电脑上试用它时,它并没有。但是现在我改变了条目dom.allow_scripts_to_close_windows;在about:config中,只是附加setTimeout(“window.close()”,3000); 。它做了什么,它会在3秒后关闭父窗口。但我想弹出窗口关闭。 – 2014-11-01 11:45:07