隨筆 - 37  文章 - 29  trackbacks - 0


          常用鏈接

          留言簿(3)

          隨筆分類(lèi)

          隨筆檔案

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜



          1.document.referrer 查詢鏈接來(lái)源,只對(duì)瀏覽器點(diǎn)擊的來(lái)源有效

          2.JS去除前后空格

          (/(^"s*)|("s*$)/g, "");


          <head>
          <script type='text/javascript'>
          function init() {
          // 跳轉(zhuǎn)處理
          var handler = function(){
               var host = document.location.href;
               if(host.indexOf('jx163.cn') >= 0)
                  document.location = "/";
               else ;
          };

          // 添加監(jiān)聽(tīng)
          if (window.addEventListener) {
              window.addEventListener('DOMContentLoaded', handler, false);
              window.addEventListener('load', handler, false);
          } else if (window.attachEvent)
              window.attachEvent('onload', handler);
          else
              window.onload = handler;
          } // end init

          init();
          </script>

          </head>
          <body>
          --------------------

          window和firefox下的event

          --------------------

          <SCRIPT LANGUAGE="JavaScript">
          <!--
          function hh(e)
          {
          alert(arguments[0]);
          e=window.event||e;
          var el=e.srcElement||e.target;
          alert(el.value);
          }
          //-->
          </SCRIPT>
          <INPUT id ="button2"   value ="hahahahah" TYPE="button" onclick="hh(event);">

          --------------------

          test

          --------------------

          if(WebComm.getOS() == "MSIE")
              {
               obj.setCapture ();
              }
              else
              {
               document.addEventListener("mousemove",WebComm.MoveDiv,false);
              }

          if(WebComm.getOS() == "MSIE")
              {
               obj.releaseCapture ();
              }
              else
              {
              
               document.removeEventListener("mousemove",WebComm.MoveDiv,false);
              }

          ------------------

          1.火狐不能對(duì)innerText支持,也不知道為什么。火狐支持innerHTML但卻不支持innerText,所以上網(wǎng)查了一 下,原來(lái)它改支持textContent來(lái)實(shí)現(xiàn)innerText,不過(guò)實(shí)現(xiàn)得沒(méi)有那么好,默認(rèn)把多余的空格也保留了。如果不用textContent, 如果字符串里面不包含HTML代碼也可以用innerHTML代替

          2.禁止選取網(wǎng)頁(yè)內(nèi)容:
          在IE中一般用js:obj.onselectstart=function(){return false;}
          而火狐用CSS:-moz-user-select:none

          3.濾鏡的支持(例:透明濾鏡):
          IE:filter:alpha(opacity=10);
          火狐:-moz-opacity:.10;

          4.捕獲事件:
          IE:obj.setCapture() 、obj.releaseCapture()
          火狐: document.addEventListener("mousemove",mousemovefunction,true);
          document.removeEventListener("mousemove",mousemovefunction,true);

          5.獲取鼠標(biāo)位置:
          IE:event.clientX、event.clientY
          火狐:需要事件函數(shù)傳遞事件對(duì)象
          obj.onmousemove=function(ev){
          X= ev.pageX;Y=ev.pageY;
          }

          6.DIV等元素的邊界問(wèn)題:
          比如:設(shè)置一個(gè)div的CSS::{width:100px;height:100px;border:#000000 1px solid;}
          IE中:div的寬度(包括邊框?qū)挾龋?00px,div的高度(包括邊框?qū)挾龋?00px;
          而火狐:div的寬度(包括邊框?qū)挾龋?02px,div的高度(包括邊框?qū)挾龋?02px;


          所以在做這個(gè)兼容IE和火狐的拖動(dòng)窗口時(shí),在js和css的寫(xiě)法上要?jiǎng)狱c(diǎn)腦筋,給大家兩個(gè)小技巧.
          一.判斷瀏覽器類(lèi)型:
          var isIE=document.all? true:false;
          我寫(xiě)了一個(gè)變量,如果支持document.all語(yǔ)法那么isIE=true,否則isIE=false

          二.在不同瀏覽器下的CSS處理:
          一般可以用!important來(lái)優(yōu)先使用css語(yǔ)句(僅火狐支持)
          比如:{border-width:0px!important;border-width:1px;}
          在火狐下這個(gè)元素是沒(méi)有邊框的,在IE下邊框?qū)挾仁?px

          又發(fā)現(xiàn)幾處XHTML與正常狀態(tài)下的JS、CSS的區(qū)別,前階段寫(xiě)了兼容IE/火狐的拖動(dòng)窗口發(fā)現(xiàn)了這兩個(gè)瀏覽器的幾處區(qū)別。今天又寫(xiě)了兼容XHTML的 版本,因?yàn)楝F(xiàn)在不是流行web標(biāo)準(zhǔn)嘛,偶不能落后啊!再說(shuō)現(xiàn)在ASP.NET中的所有頁(yè)面都是應(yīng)用XHTML標(biāo)準(zhǔn)的,如果在布局頁(yè)面中刪了這句標(biāo)準(zhǔn)代碼, 里面的布局和控件visual studio就不顯示了。

          呵呵,在網(wǎng)頁(yè)開(kāi)頭加了這個(gè)代碼就是所謂的XHTML標(biāo)準(zhǔn)了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

          改了一下JS和CSS,調(diào)試了N次,發(fā)現(xiàn)了XHTML標(biāo)準(zhǔn)下的幾個(gè)不同點(diǎn):
          1.document.documentElement 與 document.body
          代碼中設(shè)置頁(yè)面的CSS時(shí)一定要用:document.documentElement
          比如:document.documentElement.style.overflow='hidden';
          overflow-X、overflow-Y 這兩個(gè)分坐標(biāo)屬性XHTML是不支持的;

          2.在取得網(wǎng)頁(yè)窗口區(qū)域和獲取滾動(dòng)條位移距離時(shí)也要用document.documentElement
          即這四個(gè)屬性(clientWidth、clientHeight、scrollLeft、scrollTop)一定要用document.documentElement
          但是document.body.appendChild()和document.body.removeChild()卻是可以用的,而且用 document.documentElement.appendChild()和 document.documentElement.removeChild()代替卻會(huì)報(bào)錯(cuò);

          所以我總結(jié)了一下僅clientWidth、clientHeight、scrollLeft、scrollTop和document.documentElement.style時(shí)才用document.documentElement

          3.呵呵,加了這個(gè)標(biāo)準(zhǔn)以后IE的邊框問(wèn)題也出現(xiàn)了變化,現(xiàn)在和火狐趨于一致了,是不是這個(gè)就是XHTML的優(yōu)點(diǎn)——跨瀏覽器的標(biāo)準(zhǔn)
          上篇文章提到:
          設(shè)置一個(gè)div的CSS::{width:100px;height:100px;border:#000000 1px solid;}
          IE中(正常情況):div的寬度(包括邊框?qū)挾龋?00px,div的高度(包括邊框?qū)挾龋?00px;
          火狐(正常情況)::div的寬度(包括邊框?qū)挾龋?02px,div的高度(包括邊框?qū)挾龋?02px;

          加了XHTML標(biāo)準(zhǔn)后的(IE和火狐打和了,^_^):
          IE中(XHTML):div的寬度(包括邊框?qū)挾龋?02px,div的高度(包括邊框?qū)挾龋?02px;
          火狐(XHTML)::div的寬度(包括邊框?qū)挾龋?02px,div的高度(包括邊框?qū)挾龋?02px;

          --------------------

          對(duì)于IE的attachEvent方法可能大家都比較熟,現(xiàn)在說(shuō)說(shuō)FireFox的addEventListener的用法。

          addEventListener的參數(shù)一共有三個(gè),語(yǔ)法為:

          element.addEventListener(type,listener,useCapture)

          下面是詳解

          • 其中element是要綁定函數(shù)的對(duì)象。
          • type是事件名稱,要注意的是"onclick"要改為"click","onblur"要改為"blur",也就是說(shuō)事件名不要帶"on"。
          • listener當(dāng)然就是綁定的函數(shù)了,記住不要跟括號(hào)
          • 最后一個(gè)參數(shù)是個(gè)布爾值,表示該事件的響應(yīng)順序,下面重點(diǎn)介紹一下addEventListener的第3個(gè)參數(shù)(useCapture)。

          userCapture若為true,則瀏覽器采用Capture,若為false則采用bubbing方式。建議用false,看個(gè)例子吧。

          html代碼

          <div id="div_test"> <input type="button" id="btn_test" value="se4.cn技術(shù)基地" /> </div>

          window.onload=function(){ document.getElementById("div_test").addEventListener("click",test1,false); document.getElementById("btn_test").addEventListener("click",test2,false); } function test1(){ alert("外層div觸發(fā)") } function test2(){ alert("內(nèi)層input觸發(fā)") }

          如果userCapture是true則test1先觸發(fā),如果userCapture是false則test2先觸發(fā)。


          posted on 2008-02-28 14:47 EvanLiu 閱讀(754) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): JS

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
          相關(guān)文章:
           
          主站蜘蛛池模板: 灵山县| 嘉定区| 昔阳县| 清丰县| 德惠市| 韩城市| 仁怀市| 普格县| 大港区| 开原市| 长海县| 武义县| 措美县| 名山县| 晋江市| 铁力市| 仪陇县| 满洲里市| 固原市| 桦甸市| 巫山县| 舟曲县| 黄石市| 阿坝县| 和平区| 调兵山市| 城市| 谷城县| 城固县| 襄汾县| 闵行区| 缙云县| 盖州市| 三门县| 赣榆县| 高阳县| 东港市| 九龙城区| 东方市| 谷城县| 宁海县|