2014-01-07 48 views
1

A Google gadget是嵌入在像Google Sites這樣的小工具容器中的iframe。 例子:https://sites.google.com/site/michaelmccolin/test如何獲取Google小工具網址參數

然而,由於谷歌小工具和谷歌的網站上兩個不同的領域,你不能得到使用window.parent.location小工具父URL。好消息是,父網址作爲小工具(iframe)網址中的參數值包含在內。例如:
https://slr19h92al8so047kuchhg5aog1sb42l-a-sites-opensocial.googleusercontent.com/gadgets/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/116132513635841516857/sample.xml&container=enterprise&view=default&lang=en&country=ALL&sanitize=0&v=3bad4b3f87c8b199&libs=core&mid=167&parent=https://sites.google.com/site/michaelmccolin/test#st=e%3DAIHE3cDvCGmbZDEAvjS%252BWTpqst9FseOLNB%252BMd8IoyLxY3kypcxAriuGzs%252FtCova0JAhrFqKK2kKB3qFgru2PBUTYWMIIcmPaw4iAl7DIaUqyPKO56DpM9mcbQqh1bIa23t89yrL7maxL%26c%3Denterprise&rpctoken=9057528913578437337

的問題是,我怎麼能得到小工具網址的parent參數值。
謝謝!

回答

1

如下您可以訪問查詢字符串:

var queryString = location.search.substr(1); 

從那裏,很容易將它在分隔符拆分,並創建一個對象出來的:

var queryObject = {}; 

queryString.split('&').forEach(function objectFromPair(pairString){ 
    var pairArray = pairString.split('='); 

    queryObject[ pairArray[ 0 ] ] = pairArray[ 1 ]; 
}); 

接下來,檢索parent鍵:

var parentUrl = queryObject.parent; 
+0

感謝您的回答! 'location.search'給了我一個想法:可以簡單地使用'location.search.split('parent =')[1]'? – Mori

+0

@RainLover你很容易就可以,但只是因爲'parent'恰好是查詢字符串中的最後一個參數(儘管如果它不是,你仍然可以通過執行'location.search.split(' parent =')[1] .split('?')[0]'。上面的方法更詳細,但更易於重用 - 順便說一句,如果您決定採用這種解決方案,我在上面的答案中做了一些更正。 – Barney