奇怪的问题。我正在使用jQuery .postMessage()
将邮件从安全<iframe>
发送到父级。具体来说,我发送了一个URL,并确认父母正在接收该网址 - 但是,当我使用尝试将window.location
设置为该网址时,没有任何反应。
发送的网址:
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。
答案 0 :(得分:3)
这部分代码无效:
var loginConfig = {
redirectURL = ""
}
需要这样:
var loginConfig = {
redirectURL: ""
}
如果这导致一个错误,该错误使loginConfig无法正确声明所需的属性,这可能部分解释了一些意外行为。您当然应该查看浏览器错误日志,看看它是否报告任何错误。