window.location - javascript - 无法正常工作

时间:2012-07-20 01:02:02

标签: javascript jquery postmessage

奇怪的问题。我正在使用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。

1 个答案:

答案 0 :(得分:3)

这部分代码无效:

var loginConfig = {
    redirectURL = ""
}

需要这样:

var loginConfig = {
    redirectURL: ""
}

如果这导致一个错误,该错误使loginConfig无法正确声明所需的属性,这可能部分解释了一些意外行为。您当然应该查看浏览器错误日志,看看它是否报告任何错误。