我有一个页面使用javascript window.location
从查询字符串中获取值。这从网络服务器运行时工作正常,但是如果我通过将其放在地址栏
c:\mysite\index.htm
网站创建的所有查询字符串都会丢失,window.location
只包含.htm
之前的位置。
我意识到上面的示例没有查询字符串,但该页面链接到可以执行的页面。从网络共享(例如\\server\mysite\index.htm
)运行时,这也会失败。它似乎在IE7 +中运行良好,只在IE6中失败。
任何让我疯狂的想法。
编辑:我已经意识到这种情况发生在模态窗口上会有什么不同吗?
答案 0 :(得分:4)
对于方案'file'的URI,显式查询字符串不存在。见RFC1738。将'查询放在'file:'URI的末尾是没有意义的。
如果要在页面上包含脚本可用的额外位置信息,请使用#fragment identifier和location.hash。
答案 1 :(得分:0)
这可能是IE6中的安全问题。我唯一能想到的是使用HTA而不是HTML文件。这是一个选择吗?
答案 2 :(得分:0)
您是否知道window.location
不是简单字符串,而是structured object字段?查询字符串在window.location.search
中 - 显然IE6在打印父对象时根本不包含该部分。
答案 3 :(得分:0)
似乎IE6在模态窗口上本地运行时忽略了任何查询字符串。通过将变量作为对话框参数而不是查询字符串传递到模态窗口来解决问题。