2010-03-04 4 views
2

저는 현재 브라우저 창 uri를 잡고 변수를 구문 분석하여 변수에 할당하는 기능을 가지고 있습니다. 이것은 훌륭하지만, 이것을 저장하기 위해 window.location을 확장하고 싶습니다. 여기에 코드가 있지만 작동하지 않는 것 같습니다. 누군가가 왜 또는 어떻게하는지 설명 할 수 있습니까?GET 변수를 저장하기 위해 window.location을 확장하십시오.

window.location.prototype.parameters = function() 
{ 
    var query_string = {}; 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 

    for (var i=0;i<vars.length;i++) 
    { 
     var pair = vars[i].split("="); 

     if (typeof query_string[pair[0]] === "undefined") 
     { 
      query_string[pair[0]] = pair[1]; 
     } 
     else if (typeof query_string[pair[0]] === "string") 
     { 
      var arr = [ query_string[pair[0]], pair[1] ]; 
      query_string[pair[0]] = arr; 
     } 
     else 
     { 
      query_string[pair[0]].push(pair[1]); 
     } 
    } 

    return query_string; 

}(); 

답변

2

프로토 타입을 사용할 필요가 없습니다. 단 하나의 창이 있습니다. 위치. 다음 코드는 저에게 효과적입니다. 프로토 타입을 제거하십시오.

window.location.parameters = function(){ 
var query_string = {}; 
var query = window.location.search.substring(1); 
var vars = query.split("&"); 

for (var i=0;i<vars.length;i++) { 
    var pair = vars[i].split("="); 

    if (typeof query_string[pair[0]] === "undefined") 
    { 
     query_string[pair[0]] = pair[1]; 
    } 
    else if (typeof query_string[pair[0]] === "string") 
    { 
     var arr = [ query_string[pair[0]], pair[1] ]; 
     query_string[pair[0]] = arr; 
    } 
    else 
    { 
     query_string[pair[0]].push(pair[1]); 
    } 
} 

return query_string; 
}(); 
관련 문제