[Opera]Stardy 繁简切换 js 在 Opera 中引发链接失效
这几天发现这个问题还挺普遍,Stardy 的 javascript 代码相当普遍,还有印象的就是 zola 的 blog 了。
太懒了,还是转发那封信吧 :-)
From: Jick Nan
To: phpcms, 幻灭
Date: July 1, 2006首先说明,我有点懒,同一个问题只想写一边,所以虽然两位可能互不认识,还是被我一信两发了,请谅解。(TO
幻灭:钟是我的大学同学也是最好的一个朋友,phpcms 是他独立开发的内容管理系统;TO 胜辉:我经常看幻灭的 blog,他的 blog
总能带来最及时的有关 Google 资讯。)我在用 Opera 访问两位的网站时都碰到了单击进行繁简切换,从而使连接失效的问题,我一直很奇怪这个问题的产生,因此也一直挂念着它。在幻灭的
blog 中我曾经留言提过这个问题,也看到了近来有两三人也在反映这个问题。在 phpcms 中这个问题更严重:所有使用 phpcms
的网站都有这个问题。因为在两位的网站同时存在这个问题,因此怀疑到繁简切换的 js 脚本:
phpcms: http://www.phpcms.cn/include/js/Std_StranJF.Js
幻灭:http://www.kenwong.cn/script/Std_StranJF.js两位用的应该都是Stardy(http://www.stardy.com , QQ:2885465)的脚本,不过
幻灭修改过了,增加了发现问题的难度,还好我先看的 phpcms :-)我估计是下面这个 IE/非IE 浏览器的判断出了问题:
### 这是我的注释 ###// ==========
var StranLink_Obj=document.getElementById(”StranLink”)
if (StranLink_Obj)
{
var JF_cn=”ft”+self.location.hostname.toString().replace(/\./g,”")
var BodyIsFt=getCookie(JF_cn)
if(BodyIsFt!=”1″)BodyIsFt=Default_isFT
with(StranLink_Obj)
{### 问题大概就在是否 IE 的判断上 ###
if(typeof(document.all)!=”object”) //非IE浏览器
{
href=”javascript:StranBody()”
}
else
{
href=”#”;
onclick= new Function(”StranBody();return false”)
### 这条本该使 IE 使用的语句似乎用在了 Opera 上 ###}
title=StranText(”点击以繁体中文方式浏览”,1,1)
innerHTML=StranText(innerHTML,1,1)
}
if(BodyIsFt==”1″){setTimeout(”StranBody()”,StranIt_Delay)}
}//=====================
不过 js 我不太熟悉,估计在两位中的哪位手中都是小菜一碟,不多手了 :-)
附注:这个问题好像是 Opera 9 带来的,以前并没有发现。是因为 Opera 9 调整了 javascript 的解释行为?





