2011-11-01 67 views
4

我在我的父頁面中使用iframe ipage。我想要在父頁面的JavaScript中查詢字符串?如何從父頁面獲取查詢字符串?

+1

http://stackoverflow.com/questions/647259/javascript-query-string ...你所在的頁面。哼! –

+0

如何重定向到下一頁? – Unknown

+0

你可以在iframe src中包含父url嗎? - http://stackoverflow.com/questions/2743751/iframe-parent-url –

回答

13

我建議你用我最喜歡的功能:

function getQueryString() { 
       var queryStringKeyValue = window.parent.location.search.replace('?', '').split('&'); 
       var qsJsonObject = {}; 
       if (queryStringKeyValue != '') { 
        for (i = 0; i < queryStringKeyValue.length; i++) { 
         qsJsonObject[queryStringKeyValue[i].split('=')[0]] = queryStringKeyValue[i].split('=')[1]; 
        } 
       } 
       return qsJsonObject; 
      } 

剛剛從像這樣子窗口調用它,查詢字符串作爲一個對象而定。

例如,如果您有查詢字符串?name=stack,你想要得到它,嘗試:

getQueryString().name 

這將返回stack

+0

請問爲什麼最後一行是'return((qsJsonObject!= null)?(qsJsonObject):(null));'而不僅僅是'return qsJsonObject;'?在代碼原樣的情況下,qsJsonObject永遠不會爲null,因爲當它聲明它被分配給一個空對象時。 – rossipedia

+0

哦是對不起:D它可能是從舊代碼泄漏;)謝謝我編輯它 – Marwan

+2

只是爲了說明,如果幀來自不同的域,這將不會工作... –

0

@Marawan的不錯答案。 - 如果它可以幫助任何人......我 擴展了這種選擇的目標作爲參數(自我/母)

function getQueryString(target) { 
    if (target == 'parent') { 
     var queryStringKeyValue = window.parent.location.search.replace('?', '').split('&'); 
    } 
    else { 
     var queryStringKeyValue = window.location.search.replace('?', '').split('&'); 
    } 

    var qsJsonObject = {}; 
    if (queryStringKeyValue != '') { 
     for (i = 0; i < queryStringKeyValue.length; i++) { 
      qsJsonObject[queryStringKeyValue[i].split('=')[0]] = queryStringKeyValue[i].split('=')[1]; 
     } 
    } 
    return qsJsonObject; 
} 

如。

getQueryString('parent').id; // get iframe parent url ?id=foo 
getQueryString().id; // get this url ?id=foo 
相關問題