日期:2014-05-16  浏览次数:20528 次

子页面调用了google地图的js,父页面能否不载入js直接使用?

iframe调用的页面
HTML code

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=en"></script>
<script type="text/javascript"><!--
var map, point, marker, txt;
    point = new google.maps.LatLng(<?=$point?>);
    var myOptions = {
      zoom: 16,
      center: point,
      mapTypeControl: false, 
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map"), myOptions);
    marker = new google.maps.Marker({map: map, position: point});
//-->
</script>



父页面
HTML code

<!--google map begins-->
<script type="text/javascript">
var bigMap, position;
position= new google.maps.LatLng(51.51170390644864,-0.130020724536962); //这里开始会出错,因为父页面没有载入api
var OptionS = {
  zoom: 18,
  center: position,
  mapTypeControl: false, 
  mapTypeId: google.maps.MapTypeId.ROADMAP
};
bigMap = new google.maps.Map(document.getElementById("canvas"), OptionS);
</script>
<div id="map"><iframe id="map" marginheight="0" border="0" src="/ukinfo/skin/mapframe.php?point=51.51170390644864,-0.130020724536962" frameborder="no" marginwidth="0" scrolling="no"></iframe></div>


有没有可能,父页面不再载入google地图的api,直接使用子页面的呢? 我用iframe载入api,这样不会拖慢主页面的速度

------解决方案--------------------
这个 当然没问题啊,只需要知道他的js代码就好了:
parent.frames["leftFrame"].window.method() //主页面调用子页面的方法
window.frames["rightFrame"].rightFrameWidth;//取子页面 javasciript 变量

window.parent.mainForward() //子页面调用父页面的方法
window.parent.rightFrameWidth //子页面去父页面的javascript变量 ,

用iframe载入api,这样不会拖慢主页面的速度, 这个说实话 ,只需要加载一次,并且用起来比freeset方便多了。挺好~~