javascript传递隐藏字段的值

时间:2010-12-15 12:40:45

标签: javascript html google-maps hidden-field

我有一个页面,每隔x秒用

重新加载一次
<meta http-equiv="refresh" content="60"/>

标签。页面上有一个谷歌地图,我需要记住刷新之间的缩放级别(和中心)。

这就是我所拥有的:

function initialize() {

    // initialize the map
    var latlng = new google.maps.LatLng(0, 0);
    var myOptions = {
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    myMarkers = new Array();    
    updateMarkers();


    cen = new google.maps.LatLng(-12.461334, 130.841904);
    map.setCenter(cen);
    zoomLevel = document.getElementById("zoomLevel").value;
    map.setZoom(parseInt(zoomLevel));
    google.maps.event.addListener(map, 'zoom_changed', function() {
        str = map.getZoom() + '';
        document.getElementById("zoomLevel").value = str;
    });
  }

所以,我有一个事件监听器,它会在每次缩放变化后更新隐藏值zoomLevel。在每次重新加载时,应从该值读取缩放级别。

<input type="hidden" name="zoomLevel" id="zoomLevel" value="4" />

但每次刷新后,缩放级别设置为4.我做错了什么?

感谢。

3 个答案:

答案 0 :(得分:1)

元刷新不是回发,它是页面的实际干净请求。您有两种方法可以解决此问题:

  1. 首先停止提神,这是你提出的一个可怕的解决方案。使用ajax请求新地图并覆盖旧地图。
  2. 更糟糕,但保持您的怪异风格:改为使用setTimeout并调用form.submit(如果您使用的是asp.net,则构建__doPostBack链接)。这样您就可以发出实际的帖子请求。

答案 1 :(得分:0)

我相信解决方案就在您的指尖。实际上你根本不需要回发。只需安排每60秒调用一次initialize()函数。所以 -

  1. 删除自动刷新META标记;
  2. 添加如下行:setInterval(initialize,60000);在页面启动代码
  3. 你有。

答案 2 :(得分:0)

也许您可以使用Cookie来记住您网页的状态。

相关问题