在BootstrapDialog中打开html页面

时间:2014-03-19 12:19:12

标签: jquery twitter-bootstrap bootstrap-dialog

在我的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)抓住身体&#39;页面中的部分并用作窗口的消息

我试试这个:

$("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 个答案:

答案 0 :(得分:0)

您可以尝试在引导模式中使用iframe或类似的东西。

答案 1 :(得分:0)

尝试使用异步加载来回调。像这样:

$("#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
    });


})