Firefox下面为什么不能用呢????着急.....

bianmazi 2007-12-24 12:40:07
Firefox中为什么不能用呢?

<SCRIPT language="javascript">
<!--start
/*
* added by LxcJie 2004.6.11
* 约束输入框的内容
* 适用于IE5.0及以上版本
* oObj: 输入框控件对象
* reg: 正则表达式
* isChinese:是否允许打开输入法,true 允许打开,即允许输入中文,false 不能打开,默认为不允许打开
* usage:
*
* //只能输入数字和大小写字母
* <BODY onLoad="regInputRestriction(document.all.txt,/^[0-9a-zA-Z]*$/)">
* <input id="txt">
* </BODY>
*/
function regInputRestriction(oObj,reg,isChinese)
{
function regInput(obj, reg, inputStr)
{
var docSel = document.selection.createRange();
if (docSel.parentElement().tagName.toLowerCase() != "input")
return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = obj.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str);
}
//限制输入法是否允许打开
if(isChinese == null)
isChinese = false;
if(isChinese)
oObj.style.imeMode = "auto";
else
oObj.style.imeMode = "disabled";

//注册事件
oObj.onkeypress = function()
{
return regInput(this,reg,String.fromCharCode(event.keyCode));//输入时激发
}
oObj.onpaste = function()
{
return regInput(this,reg,window.clipboardData.getData('Text'));//粘贴时激发
}
oObj.ondrop = function()
{
return regInput(this,reg,event.dataTransfer.getData('Text'));//拖拽时激发
}
}
//-->
</SCRIPT>
<script language="javascript">
function initForm()
{
regInputRestriction(document.all.onlyNumber,/^[0-9]*$/);
}
</script>
<BODY onLoad="initForm()">
<INPUT id="onlyNumber"> 只能输入数字<br><br>
</BODY>

以上代码在火狐浏览器下面为什么不好用呢?该怎么改呢?
...全文
510 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
换了之后还是不能用在firefox下面的啊.我是这么处理的..
document.all.onlyNumber 替换为:document.getElementById("onlyNumber")
在火狐下仍然是不好使的..
tantaiyizu 2007-12-24
  • 打赏
  • 举报
回复
document.getElementById("onlyNumber")
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
请问是这样用吗?
例如:document.all.onlyNumber 替换为:document.getElementById.onlyNumber吗?
tantaiyizu 2007-12-24
  • 打赏
  • 举报
回复
regInputRestriction(document.all.onlyNumber,/^[0-9]*$/);

---
document.all 只在ie下有用
换成 document.getElementById("")即可!
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
谢谢楼主。搞定了。。。
Go 旅城通票 2007-12-24
  • 打赏
  • 举报
回复
我帮你改了一下,在ff不能粘贴,只能输入.
但是有一个小问题,ff时就是把内容拖进文本框时不知道怎么限制

<html> 
<head>
<title>
TD Testing !
</title>
</head>
<SCRIPT language="javascript">
<!--start
/*
* added by LxcJie 2004.6.11
* 约束输入框的内容
* 适用于IE5.0及以上版本
* oObj: 输入框控件对象
* reg: 正则表达式
* isChinese:是否允许打开输入法,true 允许打开,即允许输入中文,false 不能打开,默认为不允许打开
* usage:
*
* //只能输入数字和大小写字母
* <BODY onLoad="regInputRestriction(document.all.txt,/^[0-9a-zA-Z]*$/)">
* <input id="txt">
* </BODY>
*/
function regInputRestriction(oObj,reg,isChinese)
{
function regInput(obj, reg, inputStr)
{
var docSel = document.selection.createRange();
if (docSel.parentElement().tagName.toLowerCase() != "input")
return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = obj.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str);
}
//限制输入法是否允许打开
if(isChinese == null)
isChinese = false;
if(isChinese)
oObj.style.imeMode = "auto";
else
oObj.style.imeMode = "disabled";

//注册事件,在ie下时注册onkeypress,ff时改为注册onkeydown事件,要不无法获取event的keyCode
if(document.all)
{
oObj.onkeypress=function()
{
return regInput(this,reg,String.fromCharCode(event.keyCode));//输入时激发
}
}
else
oObj.onkeydown = EventHandler; //ff改为onkeydown事件

function EventHandler(e)//===========此为ff的方法
{
e=e||event;
if(e.ctrlKey)//禁止粘贴
return false;
//不为“<-键”,“Delete键”和方向键时
else if(e.keyCode!=8&&e.keyCode!=46&&e.keyCode!=37&&e.keyCode!=38&&e.keyCode!=39&&e.keyCode!=40)
return reg.test(String.fromCharCode(e.keyCode));
}
//下面为ie的方法,在ff下不知道怎么限制
oObj.onpaste = function()
{
return regInput(this,reg,window.clipboardData.getData('Text'));//粘贴时激发
}

oObj.ondrop = function(e)
{
e=e||event;
return regInput(this,reg,event.dataTransfer.getData('Text'));//拖拽时激发
}
}
//-->
</SCRIPT>
<script language="javascript">
function initForm()
{
regInputRestriction(document.getElementById('onlyNumber'),/^[0-9]*$/);
}
</script>
<BODY onLoad="initForm()">
<INPUT id="onlyNumber"> 只能输入数字 <br> <br>
</BODY>
</html>
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
不知道该改成对应的什么方法啊?没用过ff的,最ff知知甚少..
Go 旅城通票 2007-12-24
  • 打赏
  • 举报
回复
event对象也不正确
Go 旅城通票 2007-12-24
  • 打赏
  • 举报
回复
1
ff好象不支持onpaste和ondrag

2
你创建Range对象错误,而且使用了ff不支持的Range对象的方法和属性,具体ff的Range对象是方法和属性我也不搞不清楚.
下面是创建range对象的代码
var docSel;
if(docoment.createRange)//ff和标准2级dom
docSel=document.createRange();
else if(document.selection&&document.selection.createRange)//ie
docSel=document.selection.createRange();
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
没用过ff啊,不知道还有哪些在ff下不支持啊.恳请高手指示下啊.在线等.急急急
bianmazi 2007-12-24
  • 打赏
  • 举报
回复
大家谁见过呢?我没有用过firefox真不知道哪些元素在ff上面不支持啊.
高手给个指示吧...
rjzou2006 2007-12-24
  • 打赏
  • 举报
回复
哪就是还有其它元素
在FF上不支持了??
tantaiyizu 2007-12-24
  • 打赏
  • 举报
回复
parentElement()加个括号干什么?
Firefox 是一个快速、安全且灵活的网页浏览器,这是我们的使命。 网站优化必备的9个Firefox插件 在网页设计制作中经常使用到的火狐浏览器插件工具: 1. Firebug Firebug是开发人员们钟爱火狐浏览器的一个重要原因,Firebug是火狐浏览器上一个集成式的强大调试环境,很多调试应用插件都 必须基于Firebug平台,包括下面会介绍到了一些Web测试和调试工具,所以Firebug可以说是每一个Web设计开发人员必备的工具。 Firebug – Firefox 插件安装 按照提示安装到Firefox中之后,在浏览器底部状态栏就可以看到Firebug的图标,点击之后弹出firebug调试窗口,这里面有除了Firebug自身的工具外,其他选择性安装的Firebug平台插件的调试入口,比如Page Speed等。 2. Page Speed Google于今年4月确认将网页加载速度作为排名因素之后,站长们对页面性能更加重视。其实无论是对SEO而言,还是对用户体验而言,提高页面的加载速度都相当重要。Google也提供了这枚检测页面加载速度的工具。 Page Speed插件是基于firebug平台的火狐插件,它为每一个页面进行加载速度评分,不仅如此,更提供了优化建议,因此,有改进网页加载性能的页面优化人员,这个工具是非常的必须。 Page Speed for firefox– Google官方插件安装 安装以后,Page Speed就会出现在Firebug窗口中,可以为浏览器的当前页面检测加载性能,点击Page Speed界面中的“Analyze Performance”按钮执行分析,Page Speed会为分析的页面进行评分,满分100分,评分当然越高越好,不过优化的目标应该是达到85分以上。 3. Web Developer 从这个工具名称应该能够大概猜到它的用途,没错,这是一个集众多页面测试功能于一身的强大火狐插件,能够查看CSS错误和Cookies 信息,设置突出显示表格、Heading、图片URL等几乎所有页面元素,这对页面调试非常有用,尤其当页面结构非常复杂的时候,这些工具能够让你快速找 到特定元素的分布。 小陆平时很喜欢用这个工具来查找页面的实效图片,因为在火狐里,实效的图片不会像IE那些显示小红叉。 Web Developer – Firefox插件安装 安装以后作为一个工具栏出现在浏览器中,如下图: 4. HTML Validator 网页符合W3C标准十分重要,一方面是为了让页面能够跨浏览器兼容,另一方面也是为了让搜索引擎能够顺利的抓取和理解你的页面。所有让页 面通过W3C校验是网页优化工作很重要的一方面,使用HTML Validator能够高效的检测页面的HTML代码有效性,不仅如此,它还能显示出错的代码位置,并给出错误说明和修改建议,是个非常不错的工具。 HTML Validator – Firefox插件安装 安装完成以后,在火狐浏览器右下角会出现一个红色的“叉”或者一个绿色的“勾”,分别表示页面无效和有效。如果在你的页面显示的是绿勾,那恭喜你,你的代码非常规范,如果有错也不用着急,双击红叉标志能够显示错误信息,根据提示逐个修改就行。 另外值得注意的是,HTML代码的有效性还是要以W3C官方的校验为准,小陆在使用此工具过程中发现它的校验规则跟W3C标准有些非常细微的差别,不过大部分时候还是一致,如果不放心,请使用W3C Markup Validation Service确认验证。 5. Simple Links Counter 在网站维护的时候,链接的有效性检测是一个让人头疼的工作,页面中繁多的链接着实让维护难度倍增,可能一次不严谨的批量查找替换让很多链 接出错,这个错误是老板和用户都无法容忍的,所有对于这个问题,尤其要倍加小心。SLC(Simple Links Counter)能够自动检测页面中的链接是否有效,你能够会说Dreamweaver里也有链接检查,没错,DW自带了链接检查功能,不过DW的检测仅 限于站内链接,对站外链接便无能为力。 除了检测链接有效性,SLC还能显示页面分别有多少站外链接,多少站内链接,以及具体的链接URL地址,对网站不良外链检查也是很方便的。 Simple Links Counter – Firefox插件安装 6. X-Ray 如果能在浏览器里看到页面内容是被那一些HTML标签所包含,是不是很直观呢,X-Ray就是这样一款工具。普通的一个网页在前端设计师 们眼中,不仅是单纯的文字图片,而是各种网页标签组成的结构图,但这些画面纯粹存在于设计师们的大脑中,X-Ray提供了一个让让它视觉化的方法,尤其是 在浏览别人的网站时尤其有用。 X-Ray – Firefox插件安装 安装以后,浏览器邮件菜单就多了一个“X-Ray”选项。这个工具的缺点是会让页面变得很乱,不过只要研究的页面对象不是太多,还是能够应付得过来。 7 . YSlow 有一个比Google Page Speed更强大网页性能优化工具,那就是YSlow,它是由Yahoo提供的页面性能评测和优化工具,YSlow也有页面性能评分,有趣的 是,YSlow评分接近的两个页面,Page Speed评分却相去甚远,在实际的页面优化时,YSlow的评分并不作为重要参考,因为YSlow提供了其他更多有用的信息。它能够统计一个网页中包含 的所有元素,包括图片文件、CSS文件、JS文件等,而且显示了页面的HTTP请求数,小陆认为这是页面性能优化最重要的指标之一,所以根据YSlow提 供的信息进行针对性的优化,能够产生非常明显的效果。 YSlow – Firefox插件安装 YSlow同样是一个Firebug平台的插件,需要在Firebug里运行。 8. Colorzilla 回忆一下我们是如何给网页配色的?首先打开图形软件(比如PS或者Fireworks等),导入页面效果图,使用软件中的拾色器取得图片 上某个位置的颜色,然后将颜色的RGB或者十六进制值复制到Dreamweaver中,如果没有效果图的时候,我们还要先截图,额,这样实在太浪费时间。 除了一些常用的颜色之外,很少有人能够在看到颜色时立刻准确的说得出它的颜色值,其实有一款火狐插件能够帮你“说出”颜色 值:Colorzilla能够取得浏览器中任何一点的颜色值,并且表示为RGB和十六进制值,可以非常方便的复制使用,在制作和修改页面时候大大提高工作 效率。 Colorzilla – Firefox插件安装 9. MeasureIt 除了取色以外,精确度量页面元素尺寸也是非常重要的操作,尤其是对像小陆这样页面设计“像素派”,并且很多时候在页面调试的时候,也需要 知道某些元素的尺寸以确定是否符合预留的空间。MeasureIt是一个很方便的页面测量工具,只需要拖动鼠标就能完成度量,是不是很直观?

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧