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”);