У меня большая дилемма. Я хочу загрузить файл .html
содержащий код javascript (google maps), чтобы отобразить div внутри него.
maps.html выглядят следующим образом:
<script type="text/javascript"> 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; } </script> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> //<![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 = "<font face='Tahoma' style='font-size:12px;'><div style='min-width:230px;'><b>" + name + "</b> <br/>" + address +"<a target='_top' href='../statii.php?id=" + type + "'><img style='float:right; border:0px; margin-left: 40px;' src='go.png' /></a><div/></font>"; 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://img.ruphp.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() {} //]]> </script> <body onload="load()"> <div id="map" style="width: 900px; height: 500px"></div> </body>
этот скрипт отображает карту в div.map
Что я хочу сделать, так это загрузить этот .html
в div, который содержится в другом .php
файле, например:
$("div#insert_here").load("maps.html?lat=xxx&long=yyy");
Он выводит div, содержащийся в maps.html, но без карты java.
Итак, вопрос в том, как … Как загрузить файл .html
с помощью jquery в другой .php
файл, если файл .html
уже содержит javascripts для вывода данных в файл div
.html
???
Большое спасибо !
Вместо того, чтобы загружать файл, в котором есть как HTML, так и JavaScript, вы можете сначала загрузить JavaScript с помощью страницы, сделать аякс-вызов для HTML и вызвать JavaScript после завершения запроса ajax? Это позволит решить многие проблемы с этой проблемой.
Как говорили другие, загрузите JS в частности или выполните функцию eval ();).
Это анализирует JS и позволяет выполнить его изначально.
Я не использую нагрузку, и мне почти всегда кажется, что лучше использовать $ .ajax или $ .post (большая гибкость, я также предлагаю вызывать json и использовать dataType: «json». Снова более гибкий).
Используйте обратные вызовы после успеха, чтобы запустить javascript, который вам нужен, как только ajaxed html будет загружен на страницу. Вы вызываете использование beforeSend для загрузки сценария, который вам нужен (хотя, если есть веская причина, просто добавьте эти скрипты на страницу вместе со всем остальным (более надежным / кэшируемым)).
Если google_statii.js нужны динамические переменные, один из способов будет использовать скрытые входы на странице со значениями, заполненными сервером, а затем вызвать их внутри скрипта.
то есть. var x = $ ("input # myHiddenVariable");