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

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

3 ответов


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

надеюсь, что это помогает!


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

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


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