簡體   English   中英

javascript通過隱藏字段傳遞值

[英]javascript passing the value with hidden field

我有一個頁面,每隔x秒就會自動重新加載

<meta http-equiv="refresh" content="60"/>

標簽。 頁面上有一個google map,我需要記住刷新之間的縮放級別(和中心)。

這就是我所擁有的:

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。我在做什么錯?

謝謝。

元刷新不是回發,而是頁面的實際清除請求。 您有2種方法可以解決此問題:

  1. 首先,請停止刷新,這是您想到的可怕解決方案。 使用ajax請求一個新地圖,並覆蓋舊地圖。
  2. 更糟,但保持您的怪異風格:改用setTimeout並調用form.submit (如果使用asp.net,則構建__doPostBack鏈接)。 這樣,您就可以發出實際的發帖請求。

我相信解決方案就在您的指尖。 實際上,您根本不需要回發。 只需安排initialize()函數每60秒調用一次即可。 所以-

  1. 刪除自動刷新的META標簽;
  2. 添加如下內容:setInterval(initialize,60000); 在頁面啟動代碼中

你在這。

也許您可以使用cookie來記住頁面的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM