【问题标题】:load get remote link into bootstrap modal box加载获取远程链接到引导模式框
【发布时间】:2014-10-11 19:13:19
【问题描述】:

打开模态框后我需要加载谷歌地图链接(远程)。

HTML:

<a data-toggle="modal" href="#myModal" class="btn btn-primary">Launch modal</a>

<div class="modal" id="myModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                 <h4 class="modal-title">Modal title</h4>

            </div>
            <div class="modal-body">Location:
                <input type="text" id="us2-address" style="width: 200px" />Radius:
                <input type="text" id="us2-radius" />
                <div id="us2" style="height: 400px;"></div>Lat.:
                <input type="text" id="us2-lat" />Long.:
                <input type="text" id="us2-lon" />
            </div>
            <div class="modal-footer"> <a href="#" data-dismiss="modal" class="btn">Close</a>
 <a href="#" class="btn btn-primary" id="save-changes">Save changes</a>

            </div>
        </div>
    </div>
</div>

JS:

var stillPresent = false;
$('#myModal').on('shown.bs.modal', function (e) {
       if(stillPresent == false){
               $('#us2').locationpicker({
            location: {
                latitude: 46.15242437752303,
                longitude: 2.7470703125
            },
            radius: 300,
            inputBinding: {
                latitudeInput: $('#us2-lat'),
                longitudeInput: $('#us2-lon'),
                radiusInput: $('#us2-radius'),
                locationNameInput: $('#us2-address')
            }
        });
            stillPresent = true;
        }
    })

谷歌地图链接:http://maps.google.com/maps/api/js?sensor=false&libraries=places

演示:http://jsfiddle.net/Lzv7w/9/

如果我将谷歌地图链接添加到外部资源 jsfiddle 工作。但我需要在打开模式后加载谷歌地图链接。

如何加载这个?

【问题讨论】:

  • 您遇到错误了吗?错误信息是什么?

标签: javascript jquery html google-maps twitter-bootstrap-3


【解决方案1】:

Google 有一个很好的教程here这可能会对您有所帮助。下面的代码应该可以解决您的问题。请注意,它可能不适用于 jsfiddle,但它应该适用于您的真实页面。

var stillPresent = false;
function initialize() {
    if (stillPresent == false) {
        $('#us2').locationpicker({
            location : {
                latitude : 46.15242437752303,
                longitude : 2.7470703125
            },
            radius : 300,
            inputBinding : {
                latitudeInput : $('#us2-lat'),
                longitudeInput : $('#us2-lon'),
                radiusInput : $('#us2-radius'),
                locationNameInput : $('#us2-address')
            }
        });
        stillPresent = true;
    }
}

function loadScript() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'http://maps.google.com/maps/api/js?sensor=false&libraries=places&callback=initialize';
    document.body.appendChild(script);
}
$('#myModal').on('shown.bs.modal', function(e) {
    loadScript();
});

另外,here 是一个类似问题的链接。

【讨论】:

  • 正如我上面提到的,这在 jsfiddle 中不起作用,但它适用于常规的 html 页面(我在 Firefox 和 Chrome 中测试过)。你用什么浏览器来测试?
  • 使用您自己的 html 段,在最后一个 div 元素下方添加一个脚本,如下所示:&lt;script type="text/javascript"&gt;/* My code above */&lt;/script&gt;。然后在浏览器中打开文件。
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
相关资源
最近更新 更多