Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Имитировать _blank (https://javascript.ru/forum/misc/2033-imitirovat-_blank.html)

SunnyDay 23.10.2008 12:09

Имитировать _blank
 
Вроде бы несложно, но нигде не нашёл.. Подскажите пожалуйста, как имитировать клик по ссылке с target="_blank" на JS, мне это нужно для обхода блокировки всплывающих окон.

Octane 23.10.2008 14:25

А чем
window.open(...);
arguments[0].preventDefault();

не устраивает?
Если всплывающие окна блокируются, то тут уже без вариантов.

SunnyDay 23.10.2008 14:44

всплывающие окна блокируются) а вот нажатие ссылки с target = _blank - нет! Мне просто не обязательно нужно новое окно - хотябы новая вкладка с этой страницей. Я так понимаю нужно как-то без window.open обойтись.

SunnyDay 23.10.2008 16:46

Ну так как, никто такое не делал?

ZoNT 23.10.2008 16:53

ну так каликай на ссылке c target="_blank", что тебя не устраивает???

SunnyDay 23.10.2008 17:29

мне надо чтобы кликнул JavaScript, подскажите, как имитировать щелчок на объекте.

ZoNT 23.10.2008 17:31

иммитировать клик можно, но это тебе ничего не даст, так как клик скриптом не инициализирует переход по ссылке. Клик скриптом отличается от клика человеком (сделано специально для блокирования вот таких зловредных скриптов).

SunnyDay 23.10.2008 18:34

ну тогда как мне сделать этот самый клик человеком?))) никак чтоли?)

ZoNT 23.10.2008 18:41

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

SunnyDay 24.10.2008 10:52

Хмм.. А подскажи, какнибудь так не прокатит:

function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("link_blank"); 
  var canceled = !cb.dispatchEvent(evt);
  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }
}

ZoNT 24.10.2008 14:34

ты вообще читал что я тебе написал?
НЕ ПРОКАТИТ НИКАК.

SunnyDay 24.10.2008 14:54

Окей, понятно. Но я не раз видел такой вид рекламы, как открытие новой вкладки, хотя блокировка всплывающих окон была включена. Попробую подсмотреть сырцы у адривера. Вопрос закрыт.

ZoNT 24.10.2008 18:54

Ну если ты решил у меня спросить как сделан попандер, то я тебе и так скажу, можешь не смотреть...
Просто на клинк на боди вешается открытие нового окна через window.open и всё... Если пользователь нажал на страничке хоть на одну ссылку или кнопку - результат очевиден: попап.


Часовой пояс GMT +3, время: 17:16.