2013-10-12 6 views
-1

У меня есть раскрывающийся список выбора, который содержит имена сайтов. Когда вы выбираете имя, я хочу открыть новую страницу или вкладку в браузере пользователя, который содержит выбранную страницу. Я не хочу просто делать window.location.href = новую страницу и помещать новую страницу в существующее окно.Прыжки к сайтам из выпадающего списка выберите

Я мог бы сделать window.open (url), где url - это то, что было выбрано в раскрывающемся списке, но Safari блокирует это как всплывающее окно.

Щелчок по имени в раскрывающемся меню должен иметь эффект сохранения как нажав на ссылку

  <a href="/chosen_site" target="_blank">View site</a> 

Кто-нибудь есть какие-либо мысли о том, как я могу это сделать?

Благодаря

ответ

0

Что вы пытаетесь сделать, это называется «открытое всплывающее окно», поэтому «всплывающих окон», конечно, блокирует его, так как это очень раздражает 99% пользователей (так же, как открытая любая ссылка, когда пользователь просто выбирает пункт в переключателе)

поэтому ответ - не делать этого, или сделать это только самостоятельно, вы позволяя конкретный сайт, чтобы открыть всплывающие окна

, конечно, вы можете попробовать некоторые хак, как добавление временного <A href="" target="_blank"...> в html и эмулируя клик на нем, проверьте Simulate Click Javascript

0

Плохие новости: Если вы хотите открыть в новой вкладке или в новом окне (имейте в виду, что ли создается новая вкладка или окно, определяется браузером, и вы не можете его контролировать), Я думаю, вы не можете сделать это без window.open(). Хорошие новости, что с помощью:

window.open(
    'http://yoursite.com', 
    '_blank' 
); 

будет добиться того, что вам нужно.

Если вам не нужно открывать в новом окне, то document.location.href = "http://yoursite.com" будет работать.

Вы можете добиться того, что вам нужно, это сделать: check in fiddle

<select> 
    <option value="">Nothing</option> 
    <option value="http://stackoverflow.com/users/1090562/">me on SO </option> 
    <option value="google.com"> google.com </option> 
</select> 

$("select").change(function(){ 
    var url = $(this).val(); 
    if (url){ 
     window.open(url, '_blank'); 
    } 
}) 
+0

Хорошо, я попробую это. Благодарю. Но как мы обходим блокировщик всплывающих окон? – Steve

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