IE 7 CTRL + click открывает новое окно - как его подавить?
-
01-10-2019 - |
Вопрос
Можно ли подавить функциональность IE 7 по умолчанию, когда CTRL+щелчок по ссылке открывает новое окно?если да, то каким образом?
Спасибо!
Решение
Нет способа подавить Ctrl + Нажмите на ссылку без детей в Internet Explorer - onclick
Событие не стреляет вообще для ссылки, если Ctrl ключ удерживается. Похоже, что Microsoft не хочет, чтобы вы изменили эту функциональность из страха, что вы можете запутать пользователя.
Я искал какой-то официальный подтверждение / объяснение до публикации этого ответа, но, к сожалению, это ограничение не указано в документации на MSDN и Google не было полезно. Тем не менее, это остается правдой, попробуйте сами:
<a href="#" onclick="alert('Hello');">Hello</a>
Вы найдете, что Ctrl + Нажмите на ссылку не бросит предупреждающую коробку. Согласно с PinkGothic, присвоение дочернего элемента на ссылку будет работать по проблеме. Например:
<a href="#" onclick="alert('Hello');"><span>Hello</span></a>
Это работает, потому что щелчок срабатывает для <span>
элемент сначала, прежде чем распространять <a>
элемент.
Другие советы
Jquery. Event.PreventDefault () Метод или аналогичные могут переопределить поведение по умолчанию на страницах, которые у вас есть контроль.
Как правило, плохая практика является изменение поведения браузера пользователя без действительно веских причин, так как браузер и его поведение - «их».
у меня была та же проблема, что и у op, и я решил ее, присвоив атрибуту привязки href '#' и дополнительному атрибуту data-href с соответствующим расположением ссылки.Недостатком является то, что вам нужен обработчик кликов, чтобы перейти по ссылке, также щелчок правой кнопкой мыши "открыть в новом окне" не будет работать при таком подходе.
eg: In AnchorTag, Use href and data-ref as:
<a id="logout" href="#" data-href="${yourPath}">
And in javascript, use
$("#logout").click(function(e) {
if(e.ctrlKey)
e.preventDefault();
window.location = $(e.target).attr("data-href");
});
Оберните текст ссылки внутри пролета. так:
<a href="test.html"><span>click here!</span></a>
Добавить скрипт на якорь и вернуть ложь
<a href='some.htm' onclick='return false;'></a>
И это действительно использовать анкеры в дереве, потому что он делает TreeView более доступным.
Использование jQuery Вы можете обрабатывать функциональность Ctrl + Click для себя и вернуть false, например
$("a").click(function(event){
if(event.metaKey || event.ctrlKey){
//handle over here
return false;
}
});
Это работает во всех браузерах, включая Mac