2014-09-24 32 views
1

我有window.close()函数的问题。我有一个简单的HTML脚本:javascript中的window.close()函数

<body> 
<a href="http://www.gmail.com" class="one">gmail</a><br /> 
<a href="http://www.google.com" class="one">google</a><br /> 

<input type="submit" id="submit" name="submit" value="submit"> 

<script src="project.js"></script> 
</body> 

我想在不同的窗口中打开上面的网址。一旦URL被加载,窗口应该自动关闭而没有任何警报。下面的JavaScript代码让url在不同的窗口中打开。但它只关闭'google.com'和html网页。 'Gmail'网站仍然开放。

var submit = document.getElementById("submit"); 

submit.onclick = function() { 
    var getLinks = document.getElementsByClassName("one"); 

    for(var i=0; i<=(getLinks.length-1); i++) { 
     window.open(getLinks[i]); 
     getLinks[i].onload = window.close(); 
    } 
} 

我在这段代码中遗漏了什么。任何帮助,将不胜感激。 注意:链接仅用于测试。

+1

这部分'getLinks [I] .onload = window.close()的;'。这不是你怎么做的。删除'()'或者用匿名函数包装它。 – 2014-09-24 06:32:50

+0

您已将'onload'属性添加到已加载的 2014-09-24 06:36:45

回答

1

检查了这一点:

function openWin() { 
    myWindow = window.open("http://google.com", "myWindow", "width=200, height=100"); // Opens a new window 
} 

function closeWin() { 
    myWindow.close();             // Closes the new window 
} 

在这里轻松地发现: http://www.w3schools.com/jsref/met_win_close.asp

小提琴: http://jsfiddle.net/zc2g7nkr/

它工作正常,在Chrome和我不必允许阻止弹出窗口。

0

问题是某些浏览器不允许使用javascript关闭窗口。

有些错误会阻止它 - 特别是浏览器不会让来自一个网站的代码关闭一个打开到另一个网站的窗口。

var win = window.open("http://www.google.com", '1366002941508','width=500,height=200,left=375,top=330'); 

setTimeout(function() { win.close();}, 3000); 

这里是一个DEMO

它工作正常,在Firefox中,当你允许弹出,

,它打开Chrome浏览器中弹出,但它不允许你使用JavaScript来关闭一个窗口。

0

甲页到B页

window.open('B.html', '_blank'); 
window.open('','_self').close(); 

页靠近

window.open('','_self').close();