2010-05-19 54 views
1

我正在使用一個confirmmit java腳本函數重定向到一個新的網址,並給出了肯定的答覆。它並不完全符合我的要求 - 也許我不能完全符合我的要求。是否可以使用「確認」在同一窗口中打開新的URL?

下面是它做什麼 - onunload的,它會打開新的URL在新窗口中的積極響應,這可以通過一個彈出窗口阻止程序被阻止,而用戶甚至不知道,給人的印象是什麼都沒有發生。當它打開新的URL時,會在新窗口中打開,使桌面變得擁擠。它不是一個很好的解決方案。

我想要它做什麼 - onunload我希望它在同一個窗口中打開新的URL,並且不會被分類爲被阻止的「彈出窗口」。我試着切換到onbeforeunload .... nuthin。

有沒有簡單的解決方案?

這裏是我當前的代碼:

<script language=javascript> 
function confirmit() 
{ 
var closeit= confirm("My message"); 
if (closeit == true) 
{window.open("http://MyDestinationURL");} 
else 
{window.close();} } window.onunload = confirmit 
</script> 

回答

0

而不是打開一個新的窗口,您可以設置當前窗口的位置:

<script type="text/javascript"> 

function confirmit() { 
    if (window.confirm("My message")) { 
    window.location.href = 'http://MyDestinationURL'; 
    } else { 
    window.close(); 
    } 
} 

window.onunload = confirmit; 

</script> 

我不知道,如果你真的想else情況它試圖關閉當前窗口。如果您只是想在當前頁面上留下負面答覆,請刪除else部分。

+0

我試過使用 window.location.href ='http:// MyDestinationURL'; 和 window.location ='http:// MyDestinationURL'; 兩者都不起作用。我會得到確認消息,但是當我點擊「確定」時,它不會重定向到http:// MyDestinationURL。我正在Safari和Firefox中測試。有任何想法嗎? 滿,更新的代碼: <腳本類型= 「文本/ JavaScript的」> 功能confirmit() { 如果(window.confirm( 「我的消息」)) { window.location.href =' HTTP:// URL'; } } window.onunload = confirmit; – 2010-05-19 16:31:47

+0

@Dan:Aaaah。我剛剛意識到它是來自'onunload'事件,你試圖做到這一點。由於窗戶已經註定要關閉,因此設置新位置沒有意義。打開一個新窗口是在這個階段打開新頁面的唯一方法。如果您希望能夠關閉窗口,您必須使用'onbeforeunload'事件。 – Guffa 2010-05-19 16:40:16

+0

似乎仍不工作... 繼承人的測試頁http://instantmediakit.poweredbytom.com <腳本類型= 「文本/ JavaScript的」> 功能confirmit() { 如果(窗口.confirm(「我的信息」)) { window.location.href ='http:// newurl'; } } 窗口。onbeforeunload =確認; – 2010-05-19 16:57:44

相關問題