JQuery Загрузка внешнего контента в Div, проблема со связью - PullRequest
0 голосов
/ 02 сентября 2011

Я загрузил контент с внешнего сайта в Div с помощью jQuery, но когда я нажимаю на ссылку в загруженном контенте, он открывается как его собственная страница. Есть ли способ ограничить ссылку открытием страницы, если она по-прежнему содержится в Div?

Ответы [ 5 ]

0 голосов
/ 20 сентября 2011

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

В моем опыте (самоучка jquery noob) у .load есть много проблем, иногда вы решаетеэто с «возвратом ложного»;в конце всех команд, чтобы «предотвратить по умолчанию» взаимодействие.

В других случаях вам просто нужно очистить код, как HTML-теги ... это может быть что угодно, предоставить код.

0 голосов
/ 02 сентября 2011

Вы можете просто удалить целевой атрибут в ссылках загруженного содержимого ::

$("#div").find("a").attr("target", "");

Это должно предотвратить открытие ссылок в новом окне.

Вопрос, однако, как вы получаете контент с другого сайта, используя jQuery? Это не должно быть возможно?

0 голосов
/ 02 сентября 2011

Вам придется использовать iframe вместо div для простого решения.

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

$("divContainer a").click(function(e){

    //Prevent the default behavior of the link so it will not redirect to href.
    e.preventDefault();

    var url = this.href;

    //Now using this url get the external content and load it into the DIV

});
0 голосов
/ 02 сентября 2011

У вас есть как минимум 3 проблемы:

  1. Возможно нарушение закона об авторском праве, если у вас нет разрешения на использование материалов.

  2. Нарушение безопасности.Все запросы AJAX обычно должны приходить с одного и того же сервера.Если пользователь и интернет-провайдер серьезно не уменьшат свои параметры безопасности, функции безопасности могут подозревать что-либо еще как злонамеренный код.Теги Div нет.Вам придется разделить файл только до некоторого внутреннего содержимого, чтобы отобразить его в div.Всплывающее окно - это окно, а не div.

Используйте предложение IFrame от ShankarSangoli

Это лучшее решение.

0 голосов
/ 02 сентября 2011

Единственный способ удалить это - установить "href" attr всех ссылок на "#", как мне кажется. Пожалуйста, найдите код ниже для того же.

$("#div").find("a").attr("href", "#")

Надеюсь, это полезно !!

...