谁能帮我把这段代码转化为FireFox能够支持的

阅读:6309回复:4
2004-12-23 09:01
写私信
楼主#
这段代码的目的就是当用户在标题栏输入文字的时候,动态显示目前输入的文字数,当超过相当于25个汉字(50字节)的时候,提醒用户文字过长。

这段代码在IE下面运行正常,在Opera下面只有当文字框失去焦点的时候才能显示出来文字数,也算是基本正常,但是在FireFox下面不能显示。

代码如下:

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<SCRIPT LANGUAGE="Javascript">
function getStrLenB(str)
{
num=str.length;
var arr=str.match(/[^\x00-\x80]/ig);
if(arr!=null)
num+=arr.length;
return(num);
}

function CheckLength(inStr,Obj1,Obj2)
{
Str = inStr ;
strLenB = getStrLenB(Str);
Obj1.innerText = strLenB/2 ;
if (strLenB > 50)
Obj2.style.display="inline";
else
Obj2.style.display="none";
return (0) ;
}
</SCRIPT>
</head>

<body>
<form method=post action="#" name="test">
标&&& 题:<input type="text" name="news_subject" id="news_subject" size="80" onPropertyChange="CheckLength(document.getElementById('news_subject').value,document.getElementById('TitleLength'),document.getElementById('checklength'))" onBlur="CheckLength(document.getElementById('news_subject').value,document.getElementById('TitleLength'),document.getElementById('checklength'))"><b>*必需</b></font>
  <p><font color=blue><b>标题长度为<span id="TitleLength">0</span>个汉字</b></font>&<span style="display:none" id="checklength"><font color=red><b>标题过长,将影响页面显示效果</b></font></span></p>
</form>
</body>
</html>
2004-12-23 09:01
写私信
1楼#

Obj1.innerText = strLenB/2 ;

中的innerText改成innerHTML。(其实标准里innerHTML也是没有的,不过innerHTML已经是现实标准了)
另外把onPropertyChange改成oninput。
2004-12-23 09:01
写私信
2楼#
谢谢,现在好了。
不过onInput是不是只有FF能支持啊,好像IE和Opera里面都没有用。
2004-12-23 09:01
写私信
4楼#
onpropertychange改为onKeyUp
innerText改为innerHTML