链接通过document.write打开和关闭

时间:2015-12-07 04:54:25

标签: javascript document.write window.closed

我正在尝试使用window.close以下链接

myWin.document.write("<a href='#' onclick=\"newMovie.window.close('http://www.imdb.com/title/tt2015381/','newMovie','height=600,width=600,left=400,top=100,scrollbars,status,resizable,dependent;')\"><b>Click Here to Close the Movie Window</b></a> <br><br>");

它不起作用。我们的想法是能够点击并打开一个有效的链接,然后点击第二个链接关闭同一个不起作用的窗口。

以下是两个链接:

myWin.document.write("<div Id='box' style='text-align:center;");
myWin.document.write("<a href='#' onclick=\"window.open('http://www.imdb.com/title/tt2015381/','newMovie','height=600,width=600,left=400,top=100,scrollbars,status,resizable,dependent;')\"><b>Click Here to Access the Movie Window</b></a> <br><br>");
myWin.document.write("<a href='#' onclick=\"newMovie.window.close('http://www.imdb.com/title/tt2015381/','newMovie','height=600,width=600,left=400,top=100,scrollbars,status,resizable,dependent;')\"><b>Click Here to Close the Movie Window</b></a> <br><br>");

我在这里遗漏了什么?或者更容易创建一个函数()来关闭链接?

1 个答案:

答案 0 :(得分:0)

你错过了几点:

  1. 作为评论中提到的bergi,命名窗口不会创建变量。请改用var newMovie = window.open(…)newMovie.close()。变量newMovie是对您创建的窗口的引用。还要注意,newMovie应该是一个全局变量。参考:window.open - MDN

  2. 使用document.write时要小心。您编写的文本将解析为文档的结构模型。在这种情况下,您错过了代码中的密切语法:

    你的:myWin.document.write("<div Id='box' style='text-align:center;");

    正确:myWin.document.write("<div Id='box' style='text-align:center;'>");

  3. 您可能无法直接运行代码,而是复制所有代码并在您的本地.html文件中运行。

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Test Page</title>
    </head>
    <body>
    <script type="text/javascript">
    
    	var newMovie = null; 
    
    	document.write("<div id='box' style='text-align:center;'>");
    	document.write("<a href='#' onclick='openNewWindow()'><b>Click Here to Access the Movie Window</b></a>");
    	document.write("<a href='#' onclick='closeWindow()'><b>Click Here to Close the Movie Window</b></a>");
    
    	function openNewWindow() {
    		newMovie = window.open('http://www.imdb.com/title/tt2015381/','newMovie','height=600,width=600,left=400,top=100,scrollbars,status,resizable,dependent;');
    	}
    
    	function closeWindow() {
    		newMovie.close();
    	}
    </script>
    </body>
    </html>