2012-07-20 67 views
3

奇怪的問題。我正在使用jQuery .postMessage()將郵件從安全發送給父級。具體而言,我發送一個URL並確認父母正在接收該URL - 但是,當我嘗試將window.location設置爲該URL時,沒有任何反應。window.location - javascript - 不工作

的發送網址:

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E 

實際的URL:

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E 

他們相匹配。然而,在Chrome中,如果我做一個console.log(loginConfig.redirectURL);我得到:

http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E 

undefined 

所以,我認爲window.location是獲得undefined值。

任何想法,爲什麼我會得到兩個值,當我使用console.log

更新

邏輯:

if (message[1] != "") { 
       $("#loginDialog").dialog("close"); 
       loginConfig.redirectURL = message[1]; 
       window.location = loginConfig.redirectURL 
       console.log('message: '+loginConfig.redirectURL); 
} 

配置對象:

var loginConfig = { 
redirectURL: "" 
} 

進一步更新:

的window.location的適用於任何URL withou哈哈。因此,出於某種原因,它不會加載任何帶有散列的URL。

+0

所以你在你的控制檯中有兩行?它指向你的JS文件中的哪一行?他們可能不相關。 – 2012-07-20 01:11:50

+2

我看不出我們如何能夠在沒有看到相關代碼的情況下弄清楚這一點。 – jfriend00 2012-07-20 01:20:06

+0

@ jfriend00 - 已更新 – Jason 2012-07-20 01:23:48

回答

3

你的這部分代碼是無效的:

var loginConfig = { 
    redirectURL = "" 
} 

它必須是這樣的:

var loginConfig = { 
    redirectURL: "" 
} 

如果這導致這使loginConfig從與所需的屬性被正確地宣佈一個錯誤,可以部分解釋一些意外的行爲。你當然應該看看你的瀏覽器錯誤日誌,看看它是否報告任何錯誤。

+0

更新 - 我在問題 – Jason 2012-07-20 01:40:07

+1

@Jason有一個錯字 - 我建議你應該在'if'塊的開始處'message [1]''做一個'console.log()',看看是什麼它正在通過消息傳遞系統。請注意是否有換行符或URL中可能不允許使用的特殊字符。然後,您可以查看是否需要在此if語句之前查看,還是需要查看該問題之後。 – jfriend00 2012-07-20 01:42:55

+0

沒有換行符 - url匹配100%,並且是有效的(意味着他們解析)。 – Jason 2012-07-20 02:01:52