Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2013, 16:23
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Запретили открывать ссылки в другом окне - как?
Вот здесь http://anonym.to?http://allfreelancers.su/ средняя кнопка мыши в Firefox не работает - нельзя нажать ей на ссылку, чтобы открыть её в другом окне/табе. Работает только если нажать левой кнопкой - и тогда произойдет переход по ссылке в том же самом табе.

При этом ссылки имеют обычный формат. <a href="...">

Вопрос: Как они это сделали?
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2013, 16:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Почемучкин
средняя кнопка мыши в Firefox не работает - нельзя нажать ей на ссылку
Зато работает правая клавиша , с меню перехода в новое окно
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 20:46
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Но всё-таки интересно - как они это делают?
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 21:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<a href="//google.com">Google</a>
<script>
    var link = document.querySelector('a');
    link.addEventListener('click', function(event) {
        if (event.which == 2) {
            alert('Блокируем');
            event.preventDefault();
        } else {
            alert('Не блокируем');
        }
    });
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 16.03.2013, 01:43
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

danik.js
В данном случае - не то.

Дело в том, что я с помощью DOM инспектора ставил выбранному линку атрибут onclick со своим значением - это не помогло.
Создал новый свой линк (с по идее чистым onclick) - то же самое, не работает средняя кнопка.

То есть оно применяется ко всем ссылкам, даже к внезапно появившимся, которых небыло в изначальной странице. И сброс атрибута onclick ничего не даёт.

Так что вопрос как они это делают, остаётся.

Последний раз редактировалось Почемучкин, 16.03.2013 в 20:29.
Ответить с цитированием
  #6 (permalink)  
Старый 20.03.2013, 16:44
Аватар для zilker
Профессор
Отправить личное сообщение для zilker Посмотреть профиль Найти все сообщения от zilker
 
Регистрация: 30.07.2011
Сообщений: 189

Firefox 19.0.2, Хром 25.0.1364.172 m, Opera 12.14 - все работает. Может у вас колесико на мышке сломалось?
А если посмотреть со стороны js - делегирование событий. Поэтому

Цитата:
оно применяется ко всем ссылкам, даже к внезапно появившимся, которых небыло в изначальной странице. И сброс атрибута onclick ничего не даёт.
И вообще, атрибут onclick - не единственный способ назначить обработчик события.

Последний раз редактировалось zilker, 20.03.2013 в 16:48.
Ответить с цитированием
  #7 (permalink)  
Старый 20.03.2013, 18:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от zilker
делегирование событий
<a href="//google.com">Google</a>
<button>Добавить ссылку.</button>
<script>
    var button = document.querySelector('button');
    var reference = document.querySelector('a');
    button.addEventListener('click', function(event){
        document.body.insertBefore(document.createTextNode(' '), this);
        document.body.insertBefore(reference.cloneNode(true), this);
    });
    document.addEventListener('click', function(event){
        var target = event.target;
        if (target.nodeName.toLowerCase() == 'a' && target.href) {
            if (event.which == 2) {
                alert('Блокируем');
                event.preventDefault();
            } else {
                alert('Не блокируем');
            }
        }
    });
</script>
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтобы в popup окне показывалось картинка? sarik Общие вопросы Javascript 31 15.03.2013 13:12
как сделать чтобы данная сылка показывалось только в popup окне ? sarik Общие вопросы Javascript 3 14.03.2013 16:01
Как узнать, открывается ссылка в новом окне или в текущем? eais Events/DOM/Window 5 05.12.2012 15:35
Открытие ссылки в новом окне Byob Javascript под браузер 0 10.03.2011 13:38
Нажатие на ссылки в окне, открытом window.open siddartha Firefox/Mozilla 3 29.01.2010 16:37