2011-01-27 62 views
0

我試圖從外部.jsp文件,它是建立像這樣的東西顯示數據:可以通過手動url參數確定javascript屬性值嗎?

<tag> 
    <innertag1 id="1"> 
    <innertag1 id="2"> 
</tag> 
<tag> 
    <innertag2 id="3"> 
    <innertag2 id="4"> 
</tag> 

僅由一種特殊的「innertag」標籤只顯示信息,我目前使用:

NodeList labs = XMLInfo.getElementsByTagName("innertag1"); 

我希望能夠於任何特定的標籤輕鬆隔離。理論上,我可以創建許多單獨的頁面,只需將值更改爲「innertag2」,「innertag3」等,但這顯然有點不切實際。

有沒有一種方法來確定通過URL參數的值?舉例來說,如果我想從只顯示數據「innertag2,」有沒有一種方式,網址http://www.server.com/data.jsp?id=innertag2會適當地調整標記名?

謝謝,任何幫助,將不勝感激。

+0

我猜,這將是很容易與jQuery的選擇 – JCOC611 2011-01-27 22:30:30

+0

正如注意,真正的「id」值應該看起來像標識符(換句話說,它們不能以數字開始) – Pointy 2011-01-27 22:30:34

回答

2

您可以分析document.location.href並從那裏提取參數。這是來自我使用此技術的舊HTML文件(但不確定它是否在所有瀏覽器上都兼容)。

var args = {}; 

function parseArgs() 
{ 
    var aa = document.location.href; 
    if (aa.indexOf("?") != -1) 
    { 
     aa = aa.split("?")[1].split("&"); 
     for (var i=0; i<aa.length; i++) 
     { 
      var s = aa[i]; 
      var j = s.indexOf("="); 
      if (j != -1) 
      { 
       var name = s.substr(0, j); 
       var value = s.substr(j + 1); 
       args[name] = value; 
      } 
     } 
    } 
} 
1

不知道這是你在尋找什麼,而是你可以使用location.search的URL訪問參數。

6502的答案几乎是足夠好,這不是URL解碼參數。下面的功能是多一點拋光(描述性的變量名,沒有全局變量)

function getUrlParams() { 

    var paramMap = {}; 
    if (location.search.length == 0) { 
    return paramMap; 
    } 
    var parts = location.search.substring(1).split("&"); 

    for (var i = 0; i < parts.length; i ++) { 
    var component = parts[i].split("="); 
    paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]); 
    } 
    return paramMap; 
} 

那麼你可以做

var params = getUrlParams(); 
XMLInfo.getElementsByTagName(params['id']); // or params.id 
相關問題