Откройте HTML-страницу в BootstrapDialog

В моем Spring Projet у меня есть панель навигации, где у меня есть следующие ссылки:

<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">LigaDesportiva</a>
        </div>
        <div class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li><a href="clube.html">Clubes</a></li>
            <li><a href="dirigente.html">Dirigentes</a></li>
            <li><a href="jogadore.html">Jogadores</a></li>
            <li><a href="liga.html">Ligas</a></li>
            <li><a href="usuario.html">Usu&aacute;rios</a></li>
          </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">${usuario.nome} <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="usuario_perfil.html">Perfil</a></li>
                        <li><a href="usuario_historico.html">Hist&oacute;rico</a></li>
                        <li><a href="logout.html">Sair</a></li>
                    </ul>
                </li>
            </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>

Мне нужно, чтобы каждая ссылка открывалась в BootstrapDialog, как показано ниже, доступно на сайте http://www.jqueryrain.com/?iFhFXJv3:

BootstrapDialog.show({
            title: 'Draggable Dialog',
            message: 'Try to drag on dialog title to move your dialog.',
            draggable: true
        });

Для этого мне нужны три вещи:

1) загрузить содержимое файла в переменную javascript 2) захватить заголовок страницы из тега и использовать в качестве заголовка окна 3) захватить раздел 'body' со страницы и использовать в качестве сообщения для окна

Я пытаюсь это:

$("a").click(function(){
   var url = $(this).attr("href");
   var destino = load(url);
   var title_page = $(destino).filter("title").text();
   var message_page = $(destino).filter("body").text();
   BootstrapDialog.show({
            title: $(title_page),
            message: $(message_page),
            draggable: true
        });
});

Но не работай. Что я сделал не так? Консоль браузера не показывает никаких ошибок, но страница не открывается в диалоговом окне.

ОБНОВИТЬ

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

function load_page(url) {
    var responseText = '<div></div>';
    $(responseText).load(url);
    var title_text = $(responseText).attr("title").text();
    var message_text = $(responseText).attr("body").text();
    BootstrapDialog.show({
        title: $(title_text),
        message: $(message_text),
        draggable: true
    });
}

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

TypeError: $(...).attr(...) is undefined

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

2 ответа

Вы можете попробовать использовать iframe или что-то подобное внутри вашей начальной загрузки.

Попробуйте использовать обратный вызов из-за асинхронной загрузки. Что-то вроде этого:

$("#data").load(url, function(responseText, textStatus, XMLHttpRequest){
console.log(responseText);

var title_page = responseText.filter("title").text();
var message_page = responseText.filter("body").text();
BootstrapDialog.show({
        title: $(title_page),
        message: $(message_page),
        draggable: true
    });


})
Другие вопросы по тегам