2015-01-18 2 views
2

Я нашел этот сценарий в предыдущем поиске способ представить URL из радио-кнопки в браузере:Как я могу сделать выбор формы открытым на новой вкладке?

<script type="text/javascript"> 
 

 
    function doSubmit(form) { 
 
    var urls = form['url']; 
 
    var i = urls && urls.length; 
 
    while (i--) { 
 
     if (urls[i].checked) { 
 
     window.location = urls[i].value; 
 
     } 
 
    } 
 
    return false; 
 
    } 
 

 
    </script> 
 

 
    <form action="" onsubmit="return doSubmit(this)"> 
 
    <input type="radio" name="url" value="http://www.google.com"> Google 
 
    <input type="radio" name="url" value="http://www.yahoo.com"> Yahoo 
 
    <input type="submit" value="Submit"> 
 
    </form>

То, что я пытаюсь сделать, это изменить сценарий так что он открывает URL-адрес на новой вкладке. Я пробовал добавить параметр «_blank» без везения, но я даже не уверен, что он пойдет на все 100%. Кто-нибудь получил ответ для меня?

+2

Открыть новую вкладку через код javascript необходимо через 'window.open'. Однако вы можете установить цель в форму. – Mouser

ответ

0
function doSubmit(form) { 
    form.target = "_blank"; 
    var urls = form['url']; 
    var i = urls && urls.length; 
    while (i--) { 
     if (urls[i].checked) { 
     form.action = urls[i].value; 

     } 
    } 
    return true; 
    } 

Этот код будет делать трюк. HTML5 поддерживает атрибут target. Сценарий возвращает true, чтобы разрешить действие формы. Сценарий устанавливает action в желаемый URL, тогда как форма target установлена ​​в _blank, открывая URL в новом окне.

+0

Но он не откроет ссылки, он просто добавит ссылки на querystring – adeneo

+0

Мне интересно, если это способ обойти всплывающие блокировки всплывающих окон? – Mouser

+0

@adeneo Я только что протестировал это в IE11, и он сработал. Первые попытки действительно отображали url как querystring, но код выше фактически открыл новое окно. – Mouser

Смежные вопросы