获取页面片段时,在引导模式中加载脚本

时间:2013-07-17 13:39:22

标签: javascript jquery twitter-bootstrap modal-dialog

我目前正在获取页面片段并加载bootstrap模式。

此页面片段包含加载Google地图所需的jQuery,但是当模态加载内容时,所有脚本都会被剥离,因此随后不会加载地图。

即使我直接在modal-body类中插入脚本,它们仍然会被剥离。

根本没有解决方法吗?

我们目前用于触发模式的是: -

<a href="/stores .topclass" data-target="#StoresModal" data-toggle="modal">Launch demo modal</a>

如果需要准确回答,我可以提供进一步使用的代码。

===编辑:根据请求提供更多代码...

所以我们要包含一个触发bootstrap模式的全站点链接。触发模态的链接可以在上面看到here is the rest of the code in relation the modal

我们希望在模式中加载的只是/stores页面的一个片段,可以看到在此URL加载的所有代码here。但是,从这个页面来看,我们只是希望在第192行上加载.modal-container内的所有内容,但是由于必要的脚本位于同一个文件中的div之外,我们在尝试加载模态时不会捕获它。所以以前,我们的模态触发器看起来像: -

<a href="/stores .modal-container" data-target="#StoresModal" data-toggle="modal">Launch demo modal</a>

这导致我们尝试将整个文件内容包装在div中,并将其内容作为模式中的页面片段调用,以便我们可以提取加载#map_canvas所需的必要脚本,但是,所有脚本都被删除了模态...

希望这可以更好地解释我们想要实现的目标。

===编辑2:我们实际上通过解决方法解决了这个问题,但这是一项庞大的工作,所以我会尽快发布答案......

2 个答案:

答案 0 :(得分:0)

我正在使用以下代码加载有关boostrap模式的视图:

 $('[data-toggle="modal"]').click(function(e) {
            e.preventDefault();
            var url = $(this).attr('href');
            if (url.indexOf('#') == 0) {
                $(url).modal('open');
            } else {
                $.get(url, function(data) {
                    $(data).modal();
                }).success(function() { $('input:text:visible:first').focus(); });
            }
        });

使用以下触发器:

<a href="new" role="button" data-backdrop="static" data-keyboard="false" class="btn btn-success" rel="tooltip" data-placement="top" title="text here" data-toggle="modal" alt="text here"><i class="icon-plus icon-white"></i> </a>

通过使用此方法,您将确保在显示模式时将加载所有脚本。这只是我发现正确显示我的模态的工作。

我必须在表单上显示的所有内容( new.html )都会完美展示。

因此,我建议您在Google Map对应的页面上将所有重新发送的代码添加到/stores

修改 你应该触发:

<a href="/stores" class="topclass" data-target="#StoresModal" data-toggle="modal">Launch demo modal</a>

而不是:

<a href="/stores .topclass" data-target="#StoresModal" data-toggle="modal">Launch demo modal</a>`

<强> EDIT2

我看到的问题是,你的模态包含没有得到JS文件,因为它们不在你的包含部分。我不是PHP专家,但您可以尝试选择:

Option1 (不是很干净)

您可以在<script>Google Map required JS File</script>中添加<div class="modal-container"></div>标记,但您将获得相同JS文件的重复标记。

Option2 (可能吗?)

创建新文件并添加包含所需JS文件的<div class="modal-container"></div>部分。

通过包含新文件来替换第192行,并通过传递当前商店对象来调用模态,以便在模态中显示您的信息。

如果有帮助,请告诉我。

答案 1 :(得分:0)

StackOverflow是否更改了您的代码?

<a href="/stores .topclass" data-target="#StoresModal" data-toggle="modal">Launch demo modal</a>

你有href中的classname吗?这可能是问题的一部分。