Вопрос:

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

javascript browser cross-browser

26743 просмотра

4 ответа

600 Репутация автора

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

Автор: grai Источник Размещён: 10.08.2011 05:12

Ответы (4)


0 плюса

2957 Репутация автора

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

Автор: Kumar Размещён: 10.08.2011 05:26

2 плюса

600 Репутация автора

Решение

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

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

Автор: grai Размещён: 16.08.2011 03:36

8 плюса

6264 Репутация автора

Возможность открывать ссылку в новой вкладке / окне - это встроенная функциональность многих браузеров. Если вы не хотите разрешать этот вид деятельности, вам нужно уведомить браузер о том, что ваша ссылка на самом деле не является ссылкой. Самый простой способ сделать это - удалить 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элементов, вполне вероятно, что ваша новая причудливая псевдоссылка не будет отображаться со шрифтом цвета шрифта, указателем и подчеркиванием. Вы можете пойти дальше и сделать это достаточно легко.

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;
}

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

Автор: Phil Klein Размещён: 05.02.2015 09:32

0 плюса

8877 Репутация автора

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="http://www.website.com">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="http://www.website.com">Not link because not "a" tag again</span>

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

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

Заключение

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

Автор: evilReiko Размещён: 13.06.2019 08:30
Вопросы из категории :
32x32