奇怪的问题.我正在使用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,则可能部分解释了某些意外行为.您当然应该在浏览器错误日志中查看并查看它是否报告任何错误.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。