7

我必须在模式窗口中加载页面(内部 URL)。我一直在使用 window.showModalDialog(url, null, features) 但这在 Safari、Chrome 上无法正常工作。所以我们决定改用 Bootstrap 的模态对话框。我无法完成这项工作。有什么想法我可能做错了吗?

    //imports
    <script src="http://code.jquery.com/jquery.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <link href="css/bootstrap.min.css" rel="stylesheet">


    //activate content as modal
      $(document).ready(function(){
            $('#test_modal').modal({

                });
    }

    .......
    .......

    $("#btnSubmit").click(function(){
     var url = constructRequestURL();
      $('#test_modal').modal(data-remote=url,data-show="true");
    });


    -----
    -----
    <div class="modal fade" id="test_modal">
</div>
4

2 回答 2

12

如果您要继续引导路径,您可以在这里查看:jsfiddle - Bootstrap 2.3.2 modal 中的远程 URI

请注意,该 URL 需要位于同一个域中(尽管您提到它是“内部”),否则您的域需要被远程站点的 Access-Control-Allow-Origin 设置允许。所以请记住,小提琴演示实际上不能从 example.com 加载内容。

<button type="button" class="btn" data-toggle="modal" data-target="#myModal" data-remote="http://example.com">Launch modal</button>

<div id="myModal" class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> × </button>
        <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
       <!-- remote content will be inserted here via jQuery load() -->
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    </div>
</div>

您无需为此编写任何自定义 JavaScript - Bootstrap 将根据 data-remote="http://example.com/whatever" 和 data-target="#myModal" 等数据属性知道要做什么等等

有关更多信息,请参阅Bootstrap 模态文档的相关部分...

编辑:事实证明,动态更改远程 URL 并不容易。希望这个答案 能进一步帮助你。

于 2013-08-13T23:55:58.867 回答
0

或者,您可以使用精美的盒子。它简单而干净。

看看这里: http: //fancyapps.com/fancybox/3/docs/#ajax

<a data-fancybox data-type="ajax" data-src="my_page.com/path/to/ajax/" href="javascript:;">
AJAX content

于 2017-09-02T09:55:43.487 回答