【发布时间】:2010-02-06 12:00:13
【问题描述】:
您好,
我们即将推出一个安全站点(抱歉,没有 URL)并且在 IE6 中发现了一个相当深奥的错误,我希望有人可能遇到过或能够阐明一些问题。仅当存在三个因素时才会发生这种情况:
- 浏览器是 IE6(它是一个金融客户端,这是他们认可的浏览器)
- 页面使用SWFAddress,全部为Flash
-
void(0)从浏览器书签调用,其值设置为 JavaScript 字符串
如果您熟悉 Instapaper 的“稍后阅读”书签,它会启动一个带有“稍后阅读”按钮的弹出窗口,以将您正在查看的 URL 提交到他们的网站进行记录,那么前提是相同的。
这适用于我测试过的父窗口中的任何其他 URL。仅当 SWF 使用 SWFAddress 更新浏览器历史记录/URL 时,它才会失败,这是一项要求,因为这是我们尝试使用小书签工具捕获的深层链接 URL。
据我了解,JavaScript 字符串需要以 void(0) 结尾,这样父窗口才不会导航到 JavaScript 字符串。这是 JavaScript 在 href 属性中的典型应用。
我们看到了两件事:
- 第一次打开带有书签中的 JS 代码的新浏览器窗口后,SWFAddress 不再更新浏览器历史记录/URL 栏。
- 提交并关闭包含表单的新浏览器窗口后,随后通过书签打开窗口会忽略 void(0) 并重定向父窗口。
这是书签代码:
javascript:var%20d=document;w=window,f='http://mydomain.com/popup?l=',l=d.location,e=encodeURI,p=e(l.href),u=f+p;s=p.split('/');if(s[3]=='p'||s[3]=='t')u=u+'&p='+s[5];w.open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0);
Flash 部分由另一家供应商管理,因此我无法控制或了解他们的代码。我真的只是想提出这个问题,看看是否有人遇到过与这组因素有关的问题。
非常感谢, 标记
【问题讨论】:
标签: javascript internet-explorer-6 swfaddress