3

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

4

1 回答 1

3

您的这部分代码无效:

var loginConfig = {
    redirectURL = ""
}

它需要是这样的:

var loginConfig = {
    redirectURL: ""
}

If this leads to an error which keeps loginConfig from being properly declared with the desired property that could partly explain some unexpected behavior. You should certainly look in your browser error log and see if it reports any errors.

于 2012-07-20T01:26:36.700 回答