使用javascript窗口在新选项卡中打开页面。在锚定标记中打开(elementName.elementValue)

使用javascript窗口在新选项卡中打开页面。在锚定标记中打开(elementName.elementValue),javascript,href,window.open,Javascript,Href,Window.open,在过去的几天里,我研究了大量的例子,但仍然找不到解决我困境的答案。为了让我首先解释我的困境,我将向您展示一个我所拥有的能够工作的示例,然后解释我希望它如何工作(但似乎无法实现) 这项工作: <form> <select name="url"> <option selected="selected" value=""> Choose Donation Amount </option> <option value="http://

在过去的几天里,我研究了大量的例子,但仍然找不到解决我困境的答案。为了让我首先解释我的困境,我将向您展示一个我所拥有的能够工作的示例,然后解释我希望它如何工作(但似乎无法实现)

这项工作:

<form>
<select name="url">
    <option selected="selected" value=""> Choose Donation Amount </option>
    <option value="http://www.url1.com">URL#1</option>
    <option value="http://www.url2.com">URL#2</option>
    <option value="http://www.url3.com">URL#3</option>
    <option value="http://www.url4.com">URL#4</option>
    <option value="http://www.url5.com">URL#5</option>
    <option value="http://www.url6.com">URL#6</option>
</select>
<input type="submit" value="Submit" onclick="if (url.value) window.open(url.value);" />
</form>

选择捐赠金额
网址#1
网址#2
网址#3
网址#4
网址#5
网址#6
但我更愿意做的是捕获该选项并使用锚标记(而不是输入[type“submit”])打开URL,类似这样(在结束表单标记之前替换输入标记):


上面这一行行不通,我也不知道如何正确地形成它。帮忙


我知道这似乎不合逻辑,特别是因为我已经使用了submit按钮,但要确切解释我不想使用input或button type=“submit”或PHP的原因,对我来说也是不现实的。拜托,它真的需要在锚标记中嵌入javascript。谢谢.s:-)

添加您的表单
名称
属性,如:

<form name="form">

。。。然后试着这样做:

<a href="" onclick="window.open( form.url.value, 'windowName' ); return false" target="_blank">Submit</a>


有一个可行的方法。

到目前为止,这个方法可行,尽管很长


如果您只想在选择一个选项时打开一个URL,我不知道为什么要使用该表单。请阅读下面的代码:

<select name="url" onchange="window.open(this.options[this.selectedIndex].value,'_blank')">


即使在IE5上,这也适用于所有浏览器。

您可以忘记使用JavaScript,因为浏览器控制是否在新选项卡中打开它。您最好的选择是执行以下操作:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

我们也有类似的要求。我们希望在用户单击时使用ajax调用从服务器端生成href url。经过大量搜索,我们发现它实际上是由浏览器控制的。在chrome中,新打开的页面作为弹出窗口打开,并被弹出窗口阻止程序阻止。我们应用程序的大多数用户都对这种行为感到困惑。这是我们使用的解决方法。希望这将帮助有类似问题的人

我们可以有一个常规链接,指向我们网站中的一个实际网页,名为LandingPage.html。我们必须将目标设置为“\u blank”才能在同一浏览器选项卡中打开窗口

<a href="LandingPage.html" id="fakeLink" target="_blank">Click to open google in the same browser window</a> 
我们可以执行ajax调用并从服务器检索动态生成的url。然后我们可以将该url添加到localstorage

登录页可以有一个文本,向用户指示他们将在一秒钟内被重定向。 “您将在1秒内被重定向到谷歌。”

在登录页面中,我们可以设置一个settimeout,在该函数中,我们可以使用window.location将用户重定向到实际页面

 setTimeout(function(){
        window.location.assign(localStorage.getItem('url'));
    }, 1000);

希望这有帮助,这应该适用于所有浏览器,我只检查了IE 10和Chrome,因为我们没有使用任何与浏览器相关的东西。

这适用于Chrome 18,但不适用于Firefox 10(在OS X 10.6上运行)。我还没有测试过其他浏览器/平台。在FF中,它只是打开了一个空白页。我明白了。。你说得对。。我更新了答案。。这不是最好的解决方案,但很有效。谢谢!!这是适合我需要的解决方案!我真的很感激。:-)
<a href="LandingPage.html" id="fakeLink" target="_blank">Click to open google in the same browser window</a> 
 $('#fakeLink').click(function(){
        $.ajax({
            url: ""
        }).done(function() {
            localStorage.setItem('url', 'https://www.google.lk');
        });
    });
 setTimeout(function(){
        window.location.assign(localStorage.getItem('url'));
    }, 1000);