php - Jquery load() 一个包含 JavaScript 的 html 文件

标签 php javascript jquery

我有一个很大的困境。我想加载一个 .html 文件,其中包含用于在其中呈现 div 的 javascript(谷歌地图)代码。

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://labs.google.com/ridefinder/images/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>

此脚本将 map 渲染到 div.map

我想要做的是将此 .html 加载到包含在另一个 .php 文件中的 div 中,如下所示:

$("div#insert_here").load("maps.html?lat=xxx&long=yyy");

它输出 maps.html 中包含的 div 但没有 map 没有 java。

所以问题是...如果 .html 我如何在另一个 .php 文件中使用 jquery 加载一个 .html 文件文件已经包含将数据输出到 .html 文件中的 div 的 javascripts ???

非常感谢!

最佳答案

不是加载一个同时包含 HTML 和 JavaScript 的文件,您是否可以先在页面中加载 JavaScript,对 HTML 进行 ajax 调用,然后在 ajax 请求完成后调用 JavaScript?这将解决很多令人头疼的问题。

关于php - Jquery load() 一个包含 JavaScript 的 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5668219/

相关文章:

php - 将 WooCommerce 结帐自定义字段保存为用户元数据

javascript - 客户端退出时 PHP SSE 脚本不会死

javascript - jQuery - 事件委托(delegate)仅针对第一个新创建的元素

php - 从 PHP 网页下载图像到文件夹

javascript - 确定 Node.js 应用程序中的请求是否为本地请求

jquery - 选择另一个元素中的每四个元素

jQuery - 追加内容

php - 如何使用 SQL 查询获得所需的结果

php - 如何通过 PHP 使用 Nominatim API 检索经纬度?

javascript - 使用 HTTP 基本身份验证的 JQuery Ajax 调用