MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          js筆記

          Posted on 2008-03-12 21:10 leekiang 閱讀(421) 評(píng)論(0)  編輯  收藏 所屬分類: web開發(fā)
          1,動(dòng)態(tài)執(zhí)行js
          ? (1)document.write("<script>alert('ok');</script"+">");注意</script>要分開寫
          ? 或
          ? (2)var oDiv=document.createElement("script");
          ?????????? oDiv.appendChild("alert('0k')");
          ??????? document.body.appendChild(oDiv);
          ? (3)eval("alert(ok);");
          ???? 但不知何故,在模態(tài)窗口中用eval執(zhí)行window.dialogArguments.location.reload()會(huì)報(bào)錯(cuò)
          ?詳見http://hi.baidu.com/ziyou038/blog/item/38b25b540a777e57564e009d.html
          ? (4)不要再回調(diào)中執(zhí)行document.write
          ?原因:document close后,再document.write,就會(huì)覆蓋整個(gè)頁(yè)面

          2//在寫JavaScript代碼時(shí),可加入一個(gè)文本區(qū)域來(lái)進(jìn)行調(diào)試
          ??? function debugInfo(info) {
          ????? var debugWindow = document.getElementById("debug_window");
          ????? debugWindow.value = debugWindow.value + "\r\n" + info;
          ?? }

          3,
          有時(shí)候,我們?cè)谡{(diào)用 .js文件的時(shí)候,會(huì)發(fā)現(xiàn)。.js文件里的中文變成亂碼了,
          其實(shí)只要在調(diào)用的時(shí)候加一個(gè)charset就行了
          <script language="javascript" src="../jscript/Cjs.js" type="text/javascript" charset="gb2312"></script>

          4,
          function?b()
          {
          ????i?
          =?3;
          }

          function?a()
          {
          ????i?
          =?1;
          ????b();
          ????alert(
          "i="+i);
          }
          a();
          a()和b()里面的變量i都沒有使用var聲明,最終alert結(jié)果會(huì)是3!!!
          和 shell 一樣的,局部中聲明了變量其實(shí)是全局的, 加了 var 才是私有的
          來(lái)源:http://www.aygfsteel.com/vls/archive/2008/05/11/199808.html

          5,table在后面添加加行或列,通用寫法insertRow(-1),insertCell(-1),這樣才能跨瀏覽器

          6,native2ascii
          ??? 先用alert(escape("確定")) 的方式得到"%u786E%u5B9A",然后在
          js中alert(unescape('%u786E%u5B9A'))即可。
          ??? 如果是從java中得到的"\u786E\u5B9A"
          <script>
          var str="\u786E\u5B9A";
          str
          =str.replace(/\\/,"%");
          var a=unescape(str)
          document.write(a);
          </script>

          7,在JavaScript中不要使用跟HTML的id一樣的變量名。否則IE會(huì)報(bào)I對(duì)象未定義的錯(cuò)誤
          8,var?fileName?=?"This?is?a?title".replace(/?/g,"_");??
          9,parseInt("09")有問題,應(yīng)該為parseInt("09",?10)
          http://www.javaeye.com/topic/200401
          10,執(zhí)行focus()的時(shí)候,元素尚未可用。因此要延遲執(zhí)行:
          var?newInput?=?document.createElement("input");??
          newInput.id?
          =?"TheNewInput";??
          document.body.appendChild(newInput);??
          //在0.01秒之后調(diào)用匿名函數(shù)獲取焦點(diǎn)??
          setTimeout(function(){??????document.getElementById('TheNewInput').focus();??
          document.getElementById('TheNewInput').select();},?
          10);??

          11,
          arguments.callee.length
          <script>
          function test(x,y,z)
          {
          alert('argu.length:'+arguments.length);//實(shí)參的長(zhǎng)度4
          alert('argu.callee.length:'+arguments.callee.length);//形參的長(zhǎng)度3
          return x+y+z;
          }
          test(1,2,3,4);
          </script>

          12,js的substr和substring不一樣
          "aaaaa".substr(N1,N2)??? 從指定的位置(N1)截取指定長(zhǎng)度(N2)的字符串;
          "aaaaa".substring(N1,N2) 從指定的位置(N1)到指定的位置(N2)的字符串;
          舉個(gè)例子:
          alert("123456789".substr(2,5)) 它顯示的是 "34567"
          alert("123456789".substring(2,5)) 則顯示的為 "345"

          13,js的switch也可用字符串匹配,只要能用==的都可以
          function ? test(cs){ ?
          ?? switch(cs){ ?
          ? case ? "a":alert("input ? a");break; ?
          ? case ? "b":alert("input ? b");break; ?
          ? case ? "c":alert("input ? c");break; ?
          ? default:alert("input ? other ? words");break; ?
          ? } ?
          ? } ?
          ? test("a");
          14,在js中動(dòng)態(tài)生成代碼
          eval("var obj = document." + formName + "." + filedname + ";");

          15,使用Javascript的eval生成json對(duì)象有個(gè)地方要注意:
          var? myJSONtext="{a1:'黃夏柳',a2:'賈政經(jīng)'}";
          var myObject = eval('(' + myJSONtext + ')');//即要括起來(lái),同時(shí)用兩副單引號(hào)
          用下面的寫法不行var myObject=eval("(' + myJSONtext + ')");不知何故。

          16,登錄后用window.open實(shí)現(xiàn)瀏覽器全屏
          //window.open(document.location, '窗體名稱', 'fullscreen');//這句打開并去掉所有欄,連任務(wù)欄都蓋住
          //window.open(document.location,'窗體名稱','fullscreen,scrollbars');//帶滾動(dòng)條
          window.open('url','maxwindow','toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes,resizable=no,status=no');
          opener=null;//沒有這句,關(guān)閉時(shí)有提示,ie5.5以上有效。
          //如果是跳轉(zhuǎn)到一個(gè)iframe,就改為parent.opener=null
          window.close();//關(guān)閉當(dāng)前窗口

          17,IE,FF下取Iframe window對(duì)象的方法

          IE:document.frames("Iframe_ID");

          FF: document.frames("Iframe_ID") : document.getElementById("ifr_1").contentWindow;

          IE和FF都兼容的方法:var ifr = document.frames ? document.frames("ifr_1") : document.getElementById("ifr_1").contentWindow;

          18,關(guān)于右下角彈出窗口:

          ?? 參看鳳凰網(wǎng)、天涯或CSDN的例子

          19,鏈接的點(diǎn)擊,兩種方式:

          <A href="#" onclick="log();">

          <a href="javascript:log()">? 千萬(wàn)不要寫target="_parent",這樣調(diào)的是父頁(yè)面的函數(shù)


          主站蜘蛛池模板: 共和县| 寿宁县| 汉沽区| 江西省| 广西| 稷山县| 岑巩县| 虹口区| 宕昌县| 涞源县| 博爱县| 兴义市| 耿马| 石台县| 台前县| 邳州市| 河曲县| 汉中市| 白城市| 阿鲁科尔沁旗| 泉州市| 乡宁县| 西宁市| 宣恩县| 淳安县| 卢龙县| 白水县| 高密市| 尉犁县| 梅河口市| 华宁县| 和龙市| 雷州市| 周至县| 行唐县| 萍乡市| 永州市| 紫阳县| 澜沧| 泊头市| 拜泉县|