问候,
我们即将推出一个安全网站(抱歉,没有网址),并且已经在IE6中发现了一个相当深奥的错误,我希望有人可能遇到过这个错误,或者能够解释一下。只有在存在三个因素时才会出现这种情况:
void(0)
从浏览器书签中调用,其值设置为JavaScript字符串如果您熟悉Instapaper的“稍后阅读”书签,它会启动一个带有“稍后阅读”按钮的弹出窗口,以便将您正在查看的URL提交到他们的站点进行记录,这是相同的前提。
这适用于我测试过的父窗口中的任何其他URL。它只在SWF使用SWFAddress更新浏览器历史记录/ URL时失败,这是我们尝试使用bookmarklet工具捕获的深层链接URL。
据我了解,JavaScript字符串需要以void(0)结尾,以便父窗口不会导航到JavaScript字符串。这是典型的href属性中的旧学校JavaScript应用程序。
我们看到两件事:
这是书签代码:
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片段由其他供应商管理,因此我无法控制或洞察他们的代码。我真的只是试图浮动这个问题,看看是否有人遇到过这类因素的问题。
非常感谢, 标记
答案 0 :(得分:1)
<强>你好 你可以试试这个
<a href='#' onclick='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');'>click to visit</a>
答案 1 :(得分:1)
看起来你的bookmarklet有一些语法错误,可以减少一点:
javascript:var%20f='http://mydomain.com/popup?l=',l=document.location,e=encodeURI,p=e(l.href),u=f+p,s=p.split('/');if(s[3]=='p'||s[3]=='t')u+='&p='+s[5];open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0);
你也可以尝试添加return false;而不是void(0);
答案 2 :(得分:1)
如果您正在使用getURL()或navigateToUrl(),那么您需要知道它与SWFAddress产生冲突。请查看http://www.asual.com/blog/swfaddress/2007/05/18/swfaddress-bad-practices.html以获取解释。