用PHP的GET/POST方式來傳遞方式已經是司空見慣了,但是如果我的頁面是一個靜態的html的頁面,想傳遞參數的時候要怎么辦呢?在APPCAN的開發中我們會經常遇到這樣的問題,因為所有的頁面都是靜態的HTML頁面,服務器的數據請求都是通過ajax來實現的,那我們如何訪問一個帶參數的頁面呢?
首先想到的是通過js來獲取url中的參數,然后獲得參數后進行ajax數據交換來請求當前頁面的內容,具體方法如下:
function GetRequest(key){ var url = location.search; if(url.indexOf("?") != -1){ var str = url.substr(1); strs = str.split("&"); for(var i=0; i <strs.length;i++ ){ if(key == strs[i].split("=")[0]) var res = unescape(strs[i].split("=")[1]); } } return res; }
GetRequest是一個簡單的用來獲取url中key這個鍵對應的值,比如 goods.html?id=1頁面中,我們通過GetRequest("id")就可以獲得對應的值:1。
但是很不幸,到了APPCAN中,PC模擬器上一切正常,在安卓機上進行測試的時候發現,他居然不執行!
這樣一來,我們只能考慮通過其他的方法來達到傳參這個目的了,
備選方案是通過localstorage來實現,在點擊跳轉頁面之前,先將參數存入localstorage,然后在新頁面中獲取這個參數,具體的存儲及獲取localstorage的方法如下:
function setLocStorage(key,val){ appcan.locStorage.setVal(key,val); } function getLocStorage(key){ var val=appcan.locStorage.getVal(key); return val; }
大功告成,雖然覺得有些別扭,但是暫時還沒有想到其他比較好的替代方案,就先用着了。