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

奇怪的问题.我正在使用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正在获得未定义的值.

关于为什么在使用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上使用.因此,由于某种原因,它不会加载任何带有哈希值的网址.

解决方法:

您的代码的这一部分无效:

var loginConfig = {
    redirectURL = ""
}

必须是这样的:

var loginConfig = {
    redirectURL: ""
}

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

上一篇:C#-用于自动化的User32 API自定义PostMessage


下一篇:javascript-推送事件后serviceWorker的PostMessage