Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在FF上不起作用_Javascript_Ajax_Firefox_Javascript Events - Fatal编程技术网

Javascript在FF上不起作用

Javascript在FF上不起作用,javascript,ajax,firefox,javascript-events,Javascript,Ajax,Firefox,Javascript Events,我有下面的代码,它在IE中非常适合textarea元素 (ed:为便于阅读而包装) 它调用一个验证函数: <script language="Javascript"><!--Counter for Message Box --> maxL=100; var bName = navigator.appName; function taLimit(taObj) { if (taObj.value.length==maxL) return false; r

我有下面的代码,它在IE中非常适合textarea元素

(ed:为便于阅读而包装)


它调用一个验证函数:

<script language="Javascript"><!--Counter for Message Box -->

maxL=100;
var bName = navigator.appName;
function taLimit(taObj) {
    if (taObj.value.length==maxL) return false;
    return true;
}

function taCount(taObj,Cnt) { 
    objCnt=createObject(Cnt);
    objVal=taObj.value;
    if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
    if (objCnt) {
        if(bName == "Netscape"){    
            objCnt.textContent=maxL-objVal.length;}
        else{objCnt.innerText=maxL-objVal.length;}
    }
    return true;
}
function createObject(objId) {
    if (document.getElementById) return document.getElementById(objId);
    else if (document.layers) return eval("document." + objId);
    else if (document.all) return eval("document.all." + objId);
    else return eval("document." + objId);
}
</script>

maxL=100;
var bName=navigator.appName;
函数taLimit(taObj){
if(taObj.value.length==maxL)返回false;
返回true;
}
函数taCount(taObj,Cnt){
objCnt=createObject(Cnt);
objVal=taObj.value;
如果(objVal.length>maxL)objVal=objVal.substring(0,maxL);
if(objCnt){
如果(bName==“Netscape”){
objCnt.textContent=maxL objVal.length;}
else{objCnt.innerText=maxL objVal.length;}
}
返回true;
}
函数createObject(objId){
if(document.getElementById)返回document.getElementById(objId);
否则,如果(文件层)返回eval(“文件”+objId);
否则,如果(document.all)返回eval(“document.all.”+objId);
否则返回eval(“文件”+objId);
}

以上所有内容仅适用于IE。在Firefox上,它甚至不会关注方框。

事件处理程序的属性都是小写的;您是否尝试过onkeyup而不是onkeyup,等等?

事件处理程序的属性都是小写的;您是否尝试过onkeyup而不是onkeyup,等等?

一些提示:

  • 不要使用language=“javascript”,它已被弃用
  • 不要使用
    eval
    进行属性访问,这既慢又不必要
  • 不要嗅探“Netscape”,而是检查属性/方法是否存在/符合性(innerText/textContent)
  • 不要将接收元素的方法命名为“createObject”,这会产生误导
  • 不要执行未声明的赋值(
    maxL=100
    ),这很容易出错
  • 按照惯例,不要将非构造函数(或命名空间)的变量名大写
  • 尽量不要在全局范围内声明函数,以避免名称冲突
    • 几点提示:

      • 不要使用language=“javascript”,它已被弃用
      • 不要使用
        eval
        进行属性访问,这既慢又不必要
      • 不要嗅探“Netscape”,而是检查属性/方法是否存在/符合性(innerText/textContent)
      • 不要将接收元素的方法命名为“createObject”,这会产生误导
      • 不要执行未声明的赋值(
        maxL=100
        ),这很容易出错
      • 按照惯例,不要将非构造函数(或命名空间)的变量名大写
      • 尽量不要在全局范围内声明函数,以避免名称冲突

      这里有一个更好的脚本来计算文本区域中的字符数:


      希望这就是你要找的

      这里有一个更好的脚本来计算文本区域中的字符数:


      希望这就是你要找的

      在使用JavaScript进行任何开发之前,请先阅读此处不引人注目的JavaScript


      以后你会多次感谢我的

      在使用JavaScript进行任何开发之前,请先阅读此处不引人注目的JavaScript


      以后你会多次感谢我的

      作为旁注:调用最后一个函数“createObject”有点误导,因为你不是在创建任何东西,而是在“获取”它。我不知道你所说的“不会聚焦于方框”是什么意思,就我所知,你没有在任何地方调用focus()。你是说如果你点击它?它的标签?对我有用。。。怀疑错误在其他地方,不允许将光标放置在textarea元素内或编辑其内容。只适用于IEA作为旁注:调用最后一个函数“createObject”有点误导,因为你不是在创建任何东西,而是在“获取”它。我不知道你所说的“不会聚焦在盒子上”是什么意思,就我所知,你没有在任何地方调用focus()。你是说如果你点击它?它的标签?对我有用。。。怀疑错误在其他地方,不允许将光标放置在textarea元素内或编辑其内容。仅适用于iSomeOne似乎已编辑了该问题,使属性全部小写。浏览器不会对这些属性进行不同的分析。这些是HTML标记,不区分大小写。onKeyPress和onKeyUp是html属性而不是javascript。这取决于您使用的
      DOCTYPE
      。不过,您对HTML文档类型的看法是正确的。似乎有人已经编辑了该问题,使属性现在全部小写。浏览器不会对这些属性进行不同的解析。这些是HTML标记,不区分大小写。onKeyPress和onKeyUp是html属性而不是javascript。这取决于您使用的
      DOCTYPE
      。不过,您对HTML doctype的看法是完全正确的。所有这些都是好的方面,而且几乎所有这些都可能解释了一些不太有效的地方。实际上,“T.J.Crowder”通过实现“Kangax”第一个指针并简单地将脚本选项更改为type=“text/javascript”解决了这个问题。工作正常。如果你没有帮助,请不要垃圾贡献者,而是学习。谢谢“袋鼠”!所有这些都是好的,几乎所有这些都可以解释一些不太好用的东西。实际上“T.J.Crowder”通过实现“Kangax”第一个指针并简单地将脚本选项更改为type=“text/javascript”解决了这个问题。工作正常。如果你没有帮助,请不要垃圾贡献者,而是学习。谢谢“袋鼠”!谢谢你,埃米尔,现在不用了。这是一个错误的脚本标记属性。谢谢Emil,现在不需要了。这是一个错误的脚本标记属性。
      <script language="Javascript"><!--Counter for Message Box -->
      
      maxL=100;
      var bName = navigator.appName;
      function taLimit(taObj) {
          if (taObj.value.length==maxL) return false;
          return true;
      }
      
      function taCount(taObj,Cnt) { 
          objCnt=createObject(Cnt);
          objVal=taObj.value;
          if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
          if (objCnt) {
              if(bName == "Netscape"){    
                  objCnt.textContent=maxL-objVal.length;}
              else{objCnt.innerText=maxL-objVal.length;}
          }
          return true;
      }
      function createObject(objId) {
          if (document.getElementById) return document.getElementById(objId);
          else if (document.layers) return eval("document." + objId);
          else if (document.all) return eval("document.all." + objId);
          else return eval("document." + objId);
      }
      </script>