2010-05-19 59 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

相关问题