setTimeout, чтобы открыть новое окно в ответ на щелчок - PullRequest
3 голосов
/ 08 августа 2011

Я заметил, что при выполнении

$(".sitelink_external").click(function(e){
  e.preventDefault();
  window.open(redirectUrl,'_blank')
});

открывается новая вкладка или окно, без вызова всплывающих окон Chrome, Firefox или IE.

ОднакоЯ хочу создать перенаправление, чтобы пользователь мог сожалеть, делая таймер для ссылки, и если я сделаю так:

$(".sitelink_external").click(function(e){
  e.preventDefault();
  setTimeout("window.open(redirectUrl,'_blank')", timer * 1000);
});

Он вызывает блокировщик всплывающих окон, и неоткрыть всплывающее окно так, как я хочу, есть идеи, как решить эту проблему?

РЕДАКТИРОВАТЬ: ответы хорошие, но не решить проблему, так как она работала до того, как в том же порядке.

1 Ответ

0 голосов
/ 08 августа 2011

Измените вызов setTimeout, чтобы сделать это вместо этого:

setTimeout(function() { window.open(redirectUrl,'_blank') }, timer * 1000);

Нельзя передать переменную так, как вы это делали (и, как правило, лучше передать функцию, а не строку, которая будет вычисляться как eval'd)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...