Intereting Posts
Отображение изображения BLOB из базы данных Mysql в динамический div в html Образец обрезки PHP в форме, отличной от квадратной, как овальная форма или круглый mp4 из PHP – Не играет в HTML5 тег видео Как получить результат Laravel Query Builder как целое число Как остановить выполнение кода PHP? Есть ли хорошие учебники для Solr для noob? regex php – найти вещи в div с определенным идентификатором Невозможно автоматически загрузить / загрузить базу данных базы данных в codeigniter Использование точки вместо запятой при отображении десятичного числа Smarty, как получить первый индекс от foreach? Как сделать автоматическую доставку программно в magento? PHP: как я могу получить дату создания файла? Получить Nginx для вызова файла PHP для обработки 404 ошибок в php-fpm Как загрузить верхний и нижний колонтитулы .html dynamicaly Как я могу ограничить доступ к некоторым страницам PHP только со страниц моего сайта?

Jquery load () html-файл, содержащий JavaScript

У меня большая дилемма. Я хочу загрузить файл .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");