Как отключить "Открыть ссылку в новой вкладке" в браузере?

Как отключить/удалить "Открыть ссылку в новой вкладке" в меню правой кнопки мыши браузера? Если это невозможно с помощью javascript и т.д., То есть ли способ изменить то, что происходит, когда пользователь нажимает на эту ссылку, например, отображает предупреждение или не позволяет вкладке загружаться.?

Ответ 1

Решили главную проблему сейчас, довольно легко, как оказалось, просто передав строку запроса href функции ajax.

Вероятно, я должен был объяснить в своем вопросе, что то, что я хотел, предназначалось только как временная мера. В любом случае спасибо за все комментарии.

Ответ 2

Возможность открытия ссылки в новой вкладке/окне является встроенной функциональностью многих браузеров. Если вы не хотите разрешать этот вид деятельности, вам необходимо уведомить браузер о том, что ваша ссылка не является действительно ссылкой. Самый простой способ сделать это - удалить атрибут href из вашего элемента a.

HTML:

<a href="http://google.com">Can be opened in new tab/window</a>
<a>Cannot be opened in new tab/window</a>

Теперь есть другие вещи, которые браузер может делать для вас по умолчанию, когда видит ссылку. Если вы не определили стиль элементов a, скорее всего, ваша новая причудливая псевдосвязь не появится со ссылкой font-color, pointer и подчеркиванием. Вы можете идти вперед и делать это достаточно легко.

CSS

a {
    color: blue;
    cursor: pointer;
    text-decoration: underline;
}

Это, надеюсь, ответит на вопрос о том, как отключить/удалить "Открыть ссылку в новой вкладке" в меню правой кнопки мыши браузера. Для некоторых дополнительных кредитов, хотя я собираюсь предположить, что вы, вероятно, хотите, чтобы ссылка по-прежнему функционировала как обычная ссылка при нажатии. Не стесняйтесь использовать какой-то JavaScript, чтобы это произошло. Вот пример использования jQuery:

JavaScript:

$("body").on("click", "a[data-href]", function() {
    var href = $(this).data("href");
    if (href) {
        location.href = href;
    }
});

Измененный Html:

<a href="http://google.com">Can be opened in new tab/window</a>
<a data-href="http://google.com">Cannot be opened in new tab/window</a>

Измененный CSS:

a[href], a[data-href] {
    color: blue;
    cursor: pointer;
    text-decoration: underline;
}

Надеюсь, это поможет!

Ответ 3

Я не уверен, почему кто-то запустит ваш вопрос, что вам нужно для Google - как захватить события с помощью javascript. Вы можете очень хорошо показывать предупреждение, когда вы нажимаете ссылку и не можете ее использовать. jQuery - это набор инструментальных средств JS-Populat и имеет метод остановки событий по умолчанию для элемента на простом английском языке, используя jQuery, вы можете остановить гиперссылку от ее работы и показать предупреждение. Эта ссылка http://api.jquery.com/event.preventDefault/ может помочь вам в дальнейшем. Что касается отключения контекстного меню, которое появляется при щелчке правой кнопкой мыши на веб-странице, да, это очень возможно. Я не ниндзя JS, поэтому не могу комментировать, если вы можете удалить элемент из контекстного меню, но IMO, это не должно быть возможным.

Ответ 4

2019

Я выделю 2 важных комментария:

  1. nnnnnn @10 августа '11 в 5:49:

    Как пользователь, я бы предпочел, чтобы этот тип функции запускался кнопкой, а не ссылкой. Я ожидаю, что ссылки будут работать более стандартным способом, включая предоставление мне возможности щелкнуть правой кнопкой мыши по меню или щелкнуть средней кнопкой мыши, чтобы открыть непосредственно в новой вкладке.

  2. Парс @21 декабря 13 в 13:10:

    это не будет работать, когда вы щелкаете средней кнопкой мыши или удерживаете клавишу CTRL и нажимаете на ссылку. как в тех случаях.

Это до браузера, чтобы решить, получает ли он поведение ссылки или нет.

Некоторые современные браузеры (например, Chrome) будут рассматривать его как ссылку, если все приведенные ниже условия соответствуют:

  1. Это тег <a>...</a> (не span, div, button и т.д.).
  2. Имеет атрибут href.
  3. Атрибут href не пуст.

Ниже получите стыковку поведение:

<a href="#" onclick="location.href='http://www.website.com'; return false;">Click Here</a>

Ниже НЕ будет получено поведение ссылки:

<a>Not link because no href</a>
<a href="">Not link because empty href</a>
<span>Not link because not "a" tag</span>
<span href="#" onclick="location.href='http://www.website.com'; return false;">Not link because not "a" tag again</span>

Важная заметка:

Опять же, это решать браузеру. Некоторые старые/глупые браузеры могут указывать на поведение ссылок, если ЛЮБОЕ из 3-х условий выше соответствует!

Заключение

Если это ссылка, используйте <a href="some_link">...</a>. Если это не ссылка, используйте что-то еще, например <button>.