奇怪的问题。我正在使用 jQuery.postMessage()
将消息从安全发送<iframe>
到父级。具体来说,我正在发送一个 URL 并确认父级正在接收该 URL - 但是,当我尝试设置window.location
为该 URL 时,没有任何反应。
发送的网址:
http://mydomain.com/shop/507870?nav=ln-474#/shop/507870?gnrefine=1*COLOR_FAMILY*Brown%5E1*CLSR_TYP*Lace-Up%5E
实际网址:
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。所以由于某种原因,它不会加载任何带有哈希的 url。