精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java工程師可能不知道的那些FE潛規則

開發 后端
可如今寫一個稍微復雜點的小應用,要兼容所有瀏覽器,才發現真是太難了,難怪FE是一個獨立的工種,有別于我們這些Java工程師了。

寫了一個多月JavaScript,感覺如今可不比幾年前只有IE6的年代,而且過去只是用JS寫個Ajax或者是簡單的表單驗證,可如今寫一個稍微復雜點的小應用,要兼容所有瀏覽器,才發現真是太難了,難怪FE是一個獨立的工種,有別于我們這些Java工程師了。如果你也不是專業FE,那么估計也會跟我一樣在這些地方翻船,或許你所遇到的情況比我這些還多,那么歡迎補充。

1 首先是最簡單的select標簽,就有諸多不兼容:

A、 cloneNode方法,對于非IE瀏覽器沒有問題,對于IE瀏覽器,我遇到的問題包括:

1)option selected的會clone不過去,然后會將***個option作為selected值

2)事件clone也會有問題

B、Readonly:對于IE6,可以通過以下方法將select設為readonly:

obj.onbeforeactive=function(){return false}
obj.onfocus=function(){obj.blur();}
obj.onmouseover=function(){obj.setCapture();}
obj.onmouseout=function(){obj.releaseCapture();}

對于其他瀏覽器,我采用的是元素替代法,動態創建一個input標簽,把值賦給它,然后將select隱藏。

C、select的z-index對于IE6無效,網上有很多關于這個討論,jQuery采用一個iframe搞定

D、動態添加option的方法不同,這個網上一搜一大堆

E、對于onclick和onchange的響應不同,在FF下可以在onclick select時動態讀取option值然后構建option,然后選中一個值后執行onchange事件,但是IE下不能這樣做。

2 css對offsetWidth之類的理解不同

http://newleague.iteye.com/blog/765535

3 對于vertical-align baseline的理解不同:

http://w3help.org/zh-cn/causes/RD1016

4 設置背景色

element.style.backgroundColor

在firefox下想改變顏色,必須先設為null,再設為其他顏色才行,即先取消原來的顏色。

在IE下,想取消顏色,必須設為''才行,而換其他顏色,無需先去掉之前的顏色,而如果你設成了null,反倒不行了。

5 不同瀏覽器去padding的理解不同

6 不同瀏覽器對強制換行和強制不換行的理解不同:

http://www.cftea.com/c/2009/01/QPDZU40MNW8FYYG3.asp

最惡心的是對于IE6,如果是<td><span>我是蚊子</span></td>,那么在td上寫了word-break:keep-all依然無效,必須在span上也寫。
 

7 獲得head節點的方式不同

在Firefox下可以用window.head,而所有瀏覽器都兼容的方式是document.getElementsByTagName('head')[0]

8 往head上添加css code的方法不同,也就是動態添加<style>標簽。

IE下可以用var style=document.createStyleSheet();style.cssText=cssCode;

而有文章說,在Windows上的IE,用createStyleSheet返回的是styleElement的styleSheet,而在Mac上返回的是styleElement自己。

在其他瀏覽器下需要document.createElement('style');

然后還有區分是否具有styleSheet屬性。

這個很容易搜到。

9 對于onchange事件,firefox瀏覽器可以注冊在table,div等組件上,然后通過冒泡,攔截input,select等發出的事件,而IE不行,必須綁定到相應的組件上

10 將input設為readonly=true,其依然會響應keypress,keyup,keydown,onblur事件

11 IE和非IE對于停止冒泡和取消默認行為的方法不同

12 大家都知道IE和非IE在動態添加事件時使用的方法不同,IE是attachEvent,其他是addListener,然后參數也不同。更重要的是如果一個控件綁定了多個function,他們綁定和執行的順序是不同的,IE是跟綁定順序相反,其他是跟綁定順序相同

13 獲得當前事件不同,一個是window.event一個是直接接受event

14 FF下執行offset系列非常慢,但是IE下比較快,而IE的改變CSS的執行非常慢。

Firefox6比Firefox3.6速度快的多,相差好幾百倍(針對一個400行*50列的表格的JS處理)

15 如果大量動態改變css,那么使用document.createDocumentFragment,然后將需要修改樣式的Dom獲取出來appendChild到這個臨時的fragment上,修改完css后再append回去即可,這樣性能能差好幾百倍。

16 瀏覽器加載網頁時,順序讀取html,遇到外部js鏈接會讀進來,然后按順序執行,邊解釋邊執行,而對于外部css,圖片等則是啟動另外的線程連接服務器去獲取。

IE對于CSS引入有限制,我沒試過,但有篇文章討論:http://blog.csdn.net/ydshang/article/details/4158211

17 表格定位某一行,可以通過改變scrollTop來實現,當然如果出現了滾動條的話

18 IE的Dom用完要記得釋放,可以在unload方法中,否則會出現內存泄露

19 unload方法在各個瀏覽器里各不相同,我之前的文章里有介紹。http://sslaowan.iteye.com/blog/1128209

20 我知道了為什么FE最喜歡的瀏覽器是FF,最討厭的是IE6,恨不得IE6去死,其他IE也不怎么樣。但是Chrome,Opera也各有各的bug

21 Ajax當使用同步模式時,如果訪問的鏈接是錯誤的,那么FF會在控制臺報錯,而IE會直接彈出個對話框,然后就崩潰了。

22 FF支持document.getElementsByClass等方法,IE不支持,可以自己寫一個。

23 trim方法在IE和FF下不同,需要自己寫一個,可以用正則表達式

24 動態設置元素的css class在IE和非IE瀏覽器下也不同

25 有時本地字體庫會影響你的字體,大小等顯示,但是有時甚至會影響你的布局

26 字符串也可以使用><等符號比較大小,但是是字符串比較,不要被騙了。

27 JS中this問題非常讓人困惑

28 判斷瀏覽器可以有很多方法,主流是兩大類,agent判斷法和特性法,后者好像更推薦

29 JS是面向對象語言,對象.屬性=值 只影響當前對象,而對象.prototype.屬性則影響整個類。非IE瀏覽器可以覆蓋DOM對象的類方法,但是IE不行。

30 getComputedStyle,獲得外部添加的css,FF支持,IE不支持,具體看這篇文章http://www.jb51.net/article/16128.htm

31 IE和Chrome支持outerHTML方法,其他瀏覽器沒有。相關討論:http://walsh.iteye.com/blog/261966,http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox

32 還有一個特悲劇的,IE下會把document.[formname.]控件Id當成那個控件,如果把一個控件比如input的id設為了submit,那么form.submit()就會報錯。

2011-8-2***dd

33 如果利用全角空格進行布局時,Firefox支持,而IE會去除只剩一個,但是是在某些情況下的,具體看這篇文章:http://w3help.org/zh-cn/causes/BT1025

34 透明度:

filter:alpha(opacity=0); /* IE */
-moz-opacity:0.3; /* Moz + FF */
opacity: 0.3;

至于用不用var的區別,undefined和null的區別,Ajax構建的不同方式,這些一般的Java程序員都了解了。

很多Java程序員也會使用JS框架,比如JQuery,Extjs和Dojo,她們都幫我們屏蔽了很多兼容性問題。Dojo提供了Java一樣的面向對象機制。

拋磚引玉,你還遇到過什么陷阱,那些FE都知道,而我們Java工程師不知道?

有同學要求例子,有些只是小知識,有了鏈接,那么給一個我做的過程中寫的實驗程序吧,主要是驗證select,還有readonly之后的input對于keypress等事件的響應:

  1. <head>    
  2. <script>    
  3.     function addListener(element,e,fn){    
  4.      if(element.addEventListener){    
  5.           element.addEventListener(e,fn,false);    
  6.      } else {    
  7.           element.attachEvent("on" + e,fn);    
  8.      }    
  9.    }    
  10.        
  11.    function getEventSource(event){    
  12.         event = window.event?window.event:event;     
  13.         var source = event.target || event.srcElement;       
  14.         return source;    
  15.   }    
  16.     
  17.       
  18.   function init(e){    
  19.     var provChoicedocument.getElementById('prov');    
  20.      fillPro(provChoice);         
  21.      addListener(provChoice,'change',fillCity);    
  22.     var coChoicedocument.getElementById('country');    
  23.      addListener(coChoice,'change',function(){alert('a');});    
  24.     var selects=document.getElementsByTagName('select');        
  25.     for(var i=0;i<selects.length;i++){    
  26.        selects[i].cloneNode=function(deep){    
  27.         var temp=document.createElement('div');    
  28.         temp.innerHTML=this.outerHTML;    
  29.         return temp.childNodes[0];          
  30.       }    
  31.           
  32.           
  33.    }        
  34.        
  35.     document.getElementById('cloneCo').appendChild(coChoice.cloneNode(true));    
  36.     var coTDdocument.getElementById('co');    
  37.     document.getElementById('r1').appendChild(coTD.cloneNode(true));    
  38.         
  39.     document.getElementById('abc').readOnly=true;    
  40.     document.getElementById('abc').onkeydown=function(e){    
  41.          e.preventDefault();    
  42.          e.stopPropagation();    
  43.     }    
  44.         
  45.     document.getElementById('abc').onkeypress=function(e){    
  46.         alert('b');    
  47.     }    
  48.         
  49.     document.getElementById('abc').onchange=function(e){    
  50.         alert('c');    
  51.     }    
  52.         
  53.     document.getElementById('abc').onblur=function(e){    
  54.         alert('d');    
  55.         document.getElementById('abc').value='add';    
  56.     }    
  57.   }    
  58.      
  59.   function fillPro(pro){    
  60.       pro.options[0]=new Option('BJ','北京');    
  61.       pro.options[1]=new Option('TJ','天津');    
  62.       pro.options[2]=new Option('HLJ','黑龍江');    
  63.       pro.options[3]=new Option('SH','上海');    
  64.   }    
  65.       
  66.   function fillCity(e){    
  67.        var cdocument.getElementById('city');    
  68.        if( document.getElementById('prov').value=='黑龍江'){    
  69.          c.options[0]=new Option('HRB','哈爾濱');    
  70.          c.options[1]=new Option('MDJ','牡丹江');    
  71.          c.options[2]=new Option('QQHR','齊齊哈爾');    
  72.          c.options[3]=new Option('JMS','佳木斯');    
  73.        }    
  74.          
  75.          
  76.   }    
  77.        
  78. </script>    
  79. </head>    
  80. <body onload='init(event)'>    
  81.  <table>    
  82.    <tr id='r1'>    
  83.      <td id='co'>    
  84.        <select id='country' name='country'>    
  85.         <option value='UK'>UK</option>    
  86.         <option value='USA'>USA</option>    
  87.         <option value='CHINA' selected>China</option>    
  88.        </select>    
  89.      </td>    
  90.      <td>    
  91.        <select id='prov' name='prov'></select>    
  92.      </td>    
  93.      <td>    
  94.        <select id='city' name='city'></select>    
  95.      </td>    
  96.      <td id='cloneCo'></td>    
  97.      <td>    
  98.        <input id='abc' value='0'  onkeypress='return alert("a1"); '/>    
  99.      </td>           
  100.    <tr>    
  101.  <table>    
  102.     
  103. </body>    
  104. </html>   

原文:http://sslaowan.iteye.com/

【編輯推薦】

  1. 深入Java,初探JVM
  2. 電影《Java風云》預告片
  3. Flex與Java中的Object交互
  4. Flex前端與Java服務端交互,反射機制挑大旗
  5. 基于Java的HBase客戶端編程
責任編輯:陳貽新 來源: sslaowan
相關推薦

2012-11-23 10:57:44

Shell

2019-11-20 10:25:06

sudoLinux

2015-08-13 09:03:14

調試技巧

2021-01-05 11:22:58

Python字符串代碼

2020-01-29 19:40:36

Python美好,一直在身邊Line

2015-11-02 09:16:08

2023-02-27 09:20:24

絕對定位CSS

2023-01-29 09:46:47

Dialog彈窗模態

2019-11-25 14:05:47

Python裝飾器數據

2014-12-08 10:39:15

2021-07-12 07:59:06

安全 HTML 屬性

2021-12-17 00:10:00

ChromeDevtools功能

2018-05-10 11:50:13

Docker容器冷知識

2015-05-14 15:59:33

DockerLinux容器管理工具

2010-07-21 12:37:11

Linux用戶

2020-05-09 08:48:21

JavaScript原生方法代碼

2011-02-14 16:11:44

2010-08-06 13:15:35

2010-07-26 13:24:11

2010-08-10 09:13:49

Linux用戶
點贊
收藏

51CTO技術棧公眾號

国产一区二区在线观| 黄色网址在线播放| 国产一区久久| 精品一区二区三区四区在线| 成年人免费在线播放| 亚洲成人一二三区| 久久久久久穴| 久久成人人人人精品欧| 日韩成人精品视频在线观看| 国产在线高清视频| 99v久久综合狠狠综合久久| 国产精品久久中文| 麻豆亚洲av熟女国产一区二 | 中文字幕永久在线观看| 国产精品97| 亚洲国产成人一区| 手机版av在线| 天堂中文av在线资源库| 专区另类欧美日韩| 麻豆一区区三区四区产品精品蜜桃| 18精品爽视频在线观看| 欧美女王vk| 日韩欧美中文字幕精品| 五月婷婷狠狠操| 国产盗摄在线视频网站| 国产精品国产自产拍高清av| 九九热久久66| 亚洲国产精品国自产拍久久| 日本人妖一区二区| 91精品国产一区| 久久国产精品国语对白| 久操精品在线| 亚洲精品97久久| 久久成人av少妇免费| 日韩一区二区三区在线播放| 欧美 日本 国产| 国产精品一区免费在线| 欧洲色大大久久| 无罩大乳的熟妇正在播放| 国产美女在线观看| 国产精品免费人成网站| 日本一区二区三区www| 欧美一级在线免费观看| 国产精一区二区三区| 国产精品视频地址| 国产女主播喷水视频在线观看 | 国内精品第一页| 国产成人精品一区二区在线| 国产污片在线观看| 欧美 日韩 国产 一区| 精品国产美女在线| 日本二区三区视频| 青青草91久久久久久久久| 亚洲欧美日韩第一区| 色婷婷免费视频| 成人免费a视频| 毛片在线看网站| 久久久久久久电影| 久久综合狠狠综合久久综青草 | 麻豆网站在线观看| 国产精品女主播在线观看| 日本成人黄色免费看| 青青青手机在线视频观看| 不卡一区二区在线| 国产91一区二区三区| a在线观看免费| 国产成人亚洲精品狼色在线| 超碰97在线资源| 男人天堂网在线视频| 丁香一区二区三区| 狠狠色综合欧美激情| 天堂中文在线视频| 久久影院午夜论| 亚欧洲精品在线视频免费观看| 亚洲精品一区二区口爆| 成人精品国产免费网站| 好吊色欧美一区二区三区| 丰满人妻熟女aⅴ一区| 成人一区二区三区视频| 麻豆精品传媒视频| 天天躁日日躁狠狠躁av麻豆男男| 国产成人一区二区在线观看| 天天久久夜夜| 亚洲午夜激情免费视频| 天天干天天操天天拍| 亚洲成人二区| 午夜欧美不卡精品aaaaa| 免费黄色网址在线| 美女视频一区在线观看| 91在线播放视频| 日本免费网站在线观看| 久久嫩草精品久久久精品一| 亚洲国产一区二区三区在线 | 亚洲人成人99网站| 五月激情四射婷婷| 欧美激情亚洲| 欧美最猛性xxxxx免费| 一二三四区视频| 盗摄精品av一区二区三区| 免费久久99精品国产自| 日本中文字幕视频在线| 亚洲午夜免费视频| 日本xxxxxxx免费视频| www.久久99| 日韩精品在线视频| 九九这里只有精品视频| 国内久久精品| 国产精品一区二区三区成人| 特黄aaaaaaaaa真人毛片| 国产亚洲综合色| 好吊色视频988gao在线观看| 三上悠亚激情av一区二区三区| 日韩欧美中文字幕在线观看| 日本77777| 四虎5151久久欧美毛片| 久久综合五月天| 东京热一区二区三区四区| 国产原创一区二区| 久久视频在线观看中文字幕| 国产精品久久麻豆| 91久久精品网| xxxx黄色片| 久久久久国产精品| 国产91在线播放精品91| 亚洲美女福利视频| 亚洲桃色在线一区| 欧美综合在线观看视频| 韩国女主播一区二区三区| 亚洲精品看片| 少妇精69xxtheporn| 波多野结衣国产| 国产精品一区二区三区99| 日韩在线观看电影完整版高清免费| 香蕉久久一区二区三区| 亚洲精品视频在线观看免费| 亚洲狼人综合干| 天堂在线精品| 91成人在线视频| 囯产精品一品二区三区| www日韩欧美| 欧美成人国产精品一区二区| 亚洲激情偷拍| 国产精品亚洲一区| 最新国产在线拍揄自揄视频| 欧美乱妇20p| 免费一级特黄3大片视频| 亚洲欧美日韩国产综合精品二区 | 东京一区二区| 亚洲国产成人一区| 国产香蕉在线视频| 国产精品2024| 大片在线观看网站免费收看| 99精品国产九九国产精品| 色偷偷噜噜噜亚洲男人| 在线播放精品视频| 国产精品丝袜在线| 日日噜噜夜夜狠狠| 国内精品伊人久久久| 国产不卡在线观看| yiren22综合网成人| 91官网在线观看| 夜夜春很很躁夜夜躁| 免费亚洲电影在线| 一区二区在线观看网站| 未满十八勿进黄网站一区不卡| 欧美mv日韩mv国产网站app| 青娱乐国产在线| 国产丶欧美丶日本不卡视频| 久久综合久久网| 私拍精品福利视频在线一区| 欧美一级免费视频| 搞黄视频在线观看| 欧美人成免费网站| 欧美日韩偷拍视频| 成人激情av网| 中文字幕无码不卡免费视频| 不卡中文一二三区| 91影视免费在线观看| 青青草原国产在线| 日韩成人xxxx| 超碰在线97观看| 亚洲欧美日韩电影| 久久亚洲精品网站| 国精产品久拍自产在线网站| 捆绑紧缚一区二区三区视频| 无颜之月在线看| 精品三级av| 国产精品com| 国产传媒在线播放| 亚洲黄色在线观看| 丰满熟女人妻一区二区三| 亚洲欧洲日韩一区二区三区| 99riav国产精品视频| 亚洲专区一区| 小说区视频区图片区| 国产欧美自拍一区| 国产精品你懂得| 久久99亚洲网美利坚合众国| 亚洲午夜精品久久久久久久久久久久| 国产suv一区二区三区| av高清不卡在线| www.com黄色片| 欧美午夜国产| 日韩啊v在线| 中文字幕av久久爽一区| 91tv精品福利国产在线观看| 国产综合av一区二区三区| 国产精品原创视频| 91精品国产高清| 黄色av电影在线观看| 亚洲欧美日韩国产成人| 亚洲av无码国产综合专区| 欧美三级日本三级少妇99| 日韩无码精品一区二区三区| 一色屋精品亚洲香蕉网站| 黄色在线观看av| 国产宾馆实践打屁股91| 成年网站在线播放| 亚洲影音先锋| 久久久久久人妻一区二区三区| 91午夜精品| 国产美女扒开尿口久久久| 国产精品伦理| 91国产一区在线| 激情在线视频播放| 久久综合久久八八| 中文字幕在线播放| 亚洲人午夜色婷婷| 日漫免费在线观看网站| 精品国产三级电影在线观看| 国产又黄又粗又猛又爽| 欧美三级中文字幕在线观看| 国产女主播喷水视频在线观看| 国产精品国产三级国产aⅴ中文| 九一精品久久久| 日韩精品乱码免费| 日韩中文字幕二区| 亚洲一区图片| 免费毛片小视频| 亚洲欧美久久久| 2022亚洲天堂| 国产精品普通话对白| a天堂资源在线观看| 中文字幕一区二区三区在线视频| 99视频在线免费观看| 高清一区二区| 国产一区视频在线播放| 亚洲精品动漫| 国产999视频| 欧美电影免费观看高清完整| 国内免费久久久久久久久久久| 爱久久·www| 亚洲欧美制服中文字幕| 91麻豆一区二区| 欧美中文字幕一区二区三区亚洲| 国产精品成人69xxx免费视频| 经典一区二区三区| 中文字幕55页| 精品在线你懂的| 日本不卡一区二区在线观看| 精品一区二区三区免费播放 | 无码国产69精品久久久久网站| 亚洲国产美女| 91动漫在线看| 1024成人| 99热成人精品热久久66| 亚洲欧美日韩国产综合精品二区 | 中文字幕久久精品一区二区 | 久久av老司机精品网站导航| 欧美一级特黄a| 国产一区二区日韩精品| 国产xxxxhd| 国产精品911| 免费欧美一级片| 99re热这里只有精品免费视频| 免费看污污网站| 九九国产精品视频| 97中文字幕在线观看| av午夜一区麻豆| 久久久久久九九九九九| 国产精品电影一区二区| 欧美一卡二卡三卡| 国产无套丰满白嫩对白| 欧美丝袜第三区| 91亚洲国产成人精品一区| 日本韩国精品在线| 国产欧美日韩成人| 亚洲成人xxx| 免费黄网站在线观看| 日韩在线观看免费网站| 成人午夜在线影视| 欧美一级视频免费在线观看| 欧美日韩在线精品一区二区三区激情综合 | 亚洲欧洲精品天堂一级| 国产高潮流白浆| 精品久久久久久亚洲精品| 亚洲欧美综合自拍| 欧美日韩国产精品成人| 亚洲男人天堂久久| 亚洲欧美在线免费| 黄色免费在线看| 国产激情999| 精品视频一区二区三区| 国外成人免费视频| 91精品一区国产高清在线gif | 色琪琪久久se色| 97免费视频观看| 日韩经典一区二区| www.欧美激情.com| 91一区二区在线| 国产精品麻豆免费版现看视频| 久久亚洲精品小早川怜子| 亚洲精品卡一卡二| 欧美日韩日本国产| 91tv国产成人福利| 日韩欧美一区二区视频| 亚州av在线播放| 久久精品国产成人| 99re久久| 精品999在线观看| 手机在线电影一区| 亚洲精品视频导航| 成人va在线观看| 成人免费视频入口| 欧美午夜无遮挡| 好吊色在线观看| 中文字幕亚洲欧美在线 | 久久精品国产91精品亚洲| 黄频免费在线观看| 91美女高潮出水| 天天综合网91| 99视频精品免费| 国精产品一区一区三区mba视频| 亚洲色图欧美自拍| 久久伊99综合婷婷久久伊| 日韩a级片在线观看| 91精品久久久久久久91蜜桃| 国产黄色片在线播放| 午夜伦理精品一区| 日韩成人动漫在线观看| 特级西西444| 日韩av不卡一区二区| 国产亚洲一区在线播放| 午夜精品久久久久久久第一页按摩| 亚洲成人免费在线| 成人福利小视频| 在线视频免费一区二区| 成人爱爱网址| 青青草成人网| 久久动漫亚洲| 怡红院一区二区| 亚洲专区一二三| 国产成人av免费看| 色综合久久精品亚洲国产| 成人综合日日夜夜| 亚洲一区高清| 国产一区二区91| 午夜精品一区二区三区视频| 欧美亚洲日本国产| 成人全视频高清免费观看| 国产成人一区二区三区小说| 成久久久网站| 性欧美1819| 国产精品色哟哟网站| 国产三级伦理片| 欧美成人免费全部| 亚洲一区二区三区四区电影 | 精品成在人线av无码免费看| 高清在线观看日韩| 久久精品波多野结衣| 欧美成人一区二区三区在线观看| 风间由美一区| 国产精品久久久久久超碰| 成人在线国产| 成年人网站av| 亚洲一区在线观看免费| 国产精品无码久久久久成人app| 精品亚洲一区二区三区在线观看| 高清性色生活片在线观看| 国产精品久久久久91| 亚洲精品一二三区区别| 中国老熟女重囗味hdxx| 一区二区在线免费| 好吊色视频一区二区| 欧美亚洲另类在线| 日韩一区欧美| 亚洲天堂小视频| 亚洲国产成人va在线观看天堂| 国产情侣自拍小视频| 欧美高清无遮挡| 国产最新精品| 久久精品一卡二卡| 亚洲美女视频一区| 欧美老女人性开放| 国产精品日韩欧美大师| 黄色成人精品网站| 女人被狂躁c到高潮| 色哟哟日韩精品| 欧洲黄色一区| 色一情一区二区三区四区|