Откройте 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á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ó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
});
})