2014-09-24 30 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();