Вы здесь

Запрет на переход по внешним ссылкам, подгружаемых недоступным к редактированию скриптом (информером).

-1

Как проще запретить переход пользователю по внешним ссылкам на сайте?
Доп: независимый скрипт (информер) подгружает ссылки вида <a target="_blank" href="http://********">"********"</a>, их надо заблокировать, чтобы юзер не уходил с сайта.

Версия Drupal: 
7.x
Связанные проекты: 
jQuery UI
Вопрос задан 20.01.2015 - 09:26

Что значит запретить? Не выкладывайте ссылки и по ним не будут переходить.
Можете сделать прокси-страницу с предупреждением с помощью https://www.drupal.org/project/ext_link_page

Комментарий оставлен 20.01.2015 - 10:06

@gedeon, если Вы дружите с js инжектором, то используйте этот код (в подвал):

(function ($) {
$(document).ready(function() {
setTimeout(function () {
$("a[target='_blank']").removeAttr('href');
}, 1000);
});
})(jQuery);
Комментарий оставлен 20.01.2015 - 19:19

Ответы

1
(function ($) {
$(window).load(function() {
setTimeout(function () {
$("a[target='_blank']").removeAttr('href');
}, 100);
});
})(jQuery);
Ответ дан 21.01.2015 - 07:28
Аватар пользователя ttenz
ttenz
25

тэнз, благодарю Вас за помощь, теперь всё красиво работает, даже нет лапы вводящей в заблуждения пользователя.

Комментарий оставлен 21.01.2015 - 09:44
0

(function ($) {
  Drupal.behaviors.mybehavior = {
    attach: function (context, settings) {
      $('a[href^="http"]').click(function (e) {
        e.preventDefault();
      });
    }
  };
})(jQuery);

Ответ дан 20.01.2015 - 10:17
Аватар пользователя drupby
drupby
456

благодарю @drupby,
но не пашет, добавлял и в js файл темы и в js injector, кэш чистил, jquery 1.8.

Комментарий оставлен 20.01.2015 - 10:48

да не может скрипт этот не работать, если правильно подключен, он должен срабатывать для внешних ссылок (с абсолютными урлами)
для jQuery 1.8 можно так

(function ($) {
  Drupal.behaviors.mymodule = {
    attach: function (context, settings) {
      $('a[href^="http"]').on('click', function (e) {
        e.preventDefault();
      });
    }
  };
})(jQuery);
Комментарий оставлен 20.01.2015 - 11:04

Если я не ошибаюсь, дру все ссылки в абсолютные переводит....
Попробуй вместо: e.preventDefault();
return false;

Комментарий оставлен 20.01.2015 - 11:36

Если я не ошибаюсь, дру все ссылки в абсолютные переводит....

Кто тебя на такое надоумил?

Комментарий оставлен 20.01.2015 - 11:50

Кто тебя на такое надоумил?

Хах, реально ошибся. Это браузер выдает как будто они абсолютные.

Комментарий оставлен 20.01.2015 - 11:59

Блокировать переход также по всем внутренним абсолютным ссылками? Далеко не лучшее решение.
P.S. Внешние ссылки не всегда зло, зло - если они не с target="_blank" и rel="nofollow", а вот их на моменте вывода можно добавить (без использования javascript).

Комментарий оставлен 20.01.2015 - 17:38