Jquery load()一个包含JavaScript的html文件
我有一个很大的困境。 我想加载一个包含javascript(谷歌地图)代码的.html
文件来渲染其中的div。
maps.html看起来像这样:
function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } //<![CDATA[ var hash = getUrlVars(); function load() { var map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.LatLng(hash['lat'],hash['lng']), zoom: 14, mapTypeId: 'roadmap' }); var infoWindow = new google.maps.InfoWindow; downloadUrl("xmlout_carol.php", function(data) { var xml = data.responseXML; var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length+1; i++) { var name = markers[i].getAttribute("nume"); var address = markers[i].getAttribute("adresa"); var type = markers[i].getAttribute("id"); var point = new google.maps.LatLng( parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var html = "" + name + "
" + address +""; var tip = markers[i].getAttribute("tip"); var icon = customIcons[tip] || {}; var marker = new google.maps.Marker({ map: map, position: point, icon: icon.icon, // shadow: 'shaddow.png' //shadow: 'http://sofzh.miximages.com/php/mm_20_shadow.png' }); bindInfoWindow(marker, map, infoWindow, html); } }); } function bindInfoWindow(marker, map, infoWindow, html) { google.maps.event.addListener(marker, 'mouseover', function() { infoWindow.setContent(html); infoWindow.open(map, marker); }); google.maps.event.addListener(map, 'click', function() { infoWindow.close(map, marker); }); } function downloadUrl(url, callback) { var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; request.onreadystatechange = function() { if (request.readyState == 4) { request.onreadystatechange = doNothing; callback(request, request.status); } }; request.open('GET', url, true); request.send(null); } function doNothing() {} //]]>
此脚本将地图渲染为div.map
我想要做的是将此.html
加载到另一个.php
文件中包含的div中,如下所示:
$("div#insert_here").load("maps.html?lat=xxx&long=yyy");
它输出maps.html中包含的div但没有map没有java。
所以问题是……如果.html
文件已经包含javascripts将数据输出到.html
文件中的div
,我如何在另一个.php
文件中使用jquery加载.html
文件?
非常感谢 !
您可以在最初加载带有页面的JavaScript,对HTML进行ajax调用,并在ajax请求完成后调用JavaScript,而不是加载包含HTML和JavaScript的文件吗? 这将解决许多令人头疼的问题。
正如其他人所说,特别是加载JS,或者执行eval()函数;)。
解析JS并使其最初可以执行。
我不使用load并且使用$ .ajax或$ .post似乎总是更好(更灵活,我还建议调用json并使用dataType:“json”。再次更灵活)。
成功后使用回调来运行ajaxed html加载到页面后所需的javascript。 您可以调用use beforeSend来加载您需要的脚本(尽管除非有充分的理由将这些脚本与其他所有内容一起添加到页面中(更健壮/可缓存))。
如果google_statii.js需要动态变量,则一种方法是使用页面上的隐藏输入,其中值填充服务器端,然后在脚本中调用它们。
即。 var x = $(“input#myHiddenVariable”);
Interesting Posts
jquery如何检查所选的浏览器选项卡/窗口是否在我们的页面上?
Javascript:<script src = jquery …仅当condition为true时
在一个条件下检查NaN,null和> = 0
如何在url中显示基于变量的图像
使用jQuery data()方法存储函数
如何使用jquery追加数据?
jQuery Validate,Select2和Bootstrap 3 Popovers – 如何将Popover绑定到Select2的父元素而不是隐藏的选择元素
从html页面隐藏javascript / jquery脚本?
如何实现实时jquery效果?
未捕获错误:在初始化之前无法调用按钮上的方法; 试图调用方法’加载’