亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? addressingwidgetoverlay.js

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 3 頁
字號(hào):
    awGetInputElement(row).value = "";    awGetPopupElement(row).selectedIndex = 0;  }}function awCleanupRows(){  var maxRecipients = top.MAX_RECIPIENTS;  var rowID = 1;  for (var row = 1; row <= maxRecipients; row ++)  {    var inputElem = awGetInputElement(row);    if (inputElem.value == "" && row < maxRecipients)      awRemoveRow(row, 1);    else    {      inputElem.setAttribute("id", "addressCol2#" + rowID);      awGetPopupElement(row).setAttribute("id", "addressCol1#" + rowID);      rowID ++;    }  }  awTestRowSequence();}function awDeleteRow(rowToDelete){  /* When we delete a row, we must reset the id of others row in order to not break the sequence */  var maxRecipients = top.MAX_RECIPIENTS;  awRemoveRow(rowToDelete);  var numberOfCols = awGetNumberOfCols();  for (var row = rowToDelete + 1; row <= maxRecipients; row ++)    for (var col = 1; col <= numberOfCols; col++)      awGetElementByCol(row, col).setAttribute("id", "addressCol" + (col) + "#" + (row-1));  awTestRowSequence();}function awClickEmptySpace(target, setFocus){  if (target == null ||      (target.localName != "listboxbody" &&      target.localName != "listcell" &&      target.localName != "listitem"))    return;  var lastInput = awGetInputElement(top.MAX_RECIPIENTS);  if ( lastInput && lastInput.value )    awAppendNewRow(setFocus);  else    if (setFocus)      awSetFocus(top.MAX_RECIPIENTS, lastInput);}function awReturnHit(inputElement){  var row = awGetRowByInputElement(inputElement);  var nextInput = awGetInputElement(row+1);  if ( !nextInput )  {    if ( inputElement.value )      awAppendNewRow(true);    else // No address entered, switch to Subject field    {      var subjectField = document.getElementById( 'msgSubject' );      subjectField.select();      subjectField.focus();    }  }  else  {    nextInput.select();    awSetFocus(row+1, nextInput);  }  // be sure to add the user add recipient to our ignore list  // when the user hits enter in an autocomplete widget...  addRecipientsToIgnoreList(inputElement.value);}function awDeleteHit(inputElement){  var row = awGetRowByInputElement(inputElement);  /* 1. don't delete the row if it's the last one remaining, just reset it! */  if (top.MAX_RECIPIENTS <= 1)  {    inputElement.value = "";    return;  }  /* 2. Set the focus to the previous field if possible */  if (row > 1)    awSetFocus(row - 1, awGetInputElement(row - 1))  else    awSetFocus(1, awGetInputElement(2))   /* We have to cheat a little bit because the focus will */                                          /* be set asynchronusly after we delete the current row, */                                          /* therefore the row number still the same! */  /* 3. Delete the row */  awDeleteRow(row);}function awInputChanged(inputElement){  //Do we need to add a new row?  var lastInput = awGetInputElement(top.MAX_RECIPIENTS);  if ( lastInput && lastInput.value && !top.doNotCreateANewRow)    awAppendNewRow(false);  top.doNotCreateANewRow = false;}function awAppendNewRow(setFocus){  var listbox = document.getElementById('addressingWidget');  var listitem1 = awGetListItem(1);  if ( listbox && listitem1 )  {    var lastRecipientType = awGetPopupElement(top.MAX_RECIPIENTS).selectedItem.getAttribute("value");    var nextDummy = awGetNextDummyRow();    var newNode = listitem1.cloneNode(true);    if (nextDummy)      listbox.replaceChild(newNode, nextDummy);    else      listbox.appendChild(newNode);    top.MAX_RECIPIENTS++;    var input = newNode.getElementsByTagName(awInputElementName());    if ( input && input.length == 1 )    {      input[0].setAttribute("value", "");      input[0].setAttribute("id", "addressCol2#" + top.MAX_RECIPIENTS);          //this copies the autocomplete sessions list from recipient#1       input[0].syncSessions(document.getElementById('addressCol2#1'));  	  // also clone the showCommentColumn setting  	  //  	  input[0].showCommentColumn = 	      document.getElementById("addressCol2#1").showCommentColumn;      // We always clone the first row.  The problem is that the first row      // could be focused.  When we clone that row, we end up with a cloned      // XUL textbox that has a focused attribute set.  Therefore we think      // we're focused and don't properly refocus.  The best solution to this      // would be to clone a template row that didn't really have any presentation,      // rather than using the real visible first row of the listbox.      //      // For now we'll just put in a hack that ensures the focused attribute      // is never copied when the node is cloned.      if (input[0].getAttribute('focused') != '')        input[0].removeAttribute('focused');    }    var select = newNode.getElementsByTagName(awSelectElementName());    if ( select && select.length == 1 )    {      // It only makes sense to clone some field types; others       // should not be cloned, since it just makes the user have      // to go to the trouble of selecting something else. In such      // cases let's default to 'To' (a reasonable default since      // we already default to 'To' on the first dummy field of      // a new message).      switch (lastRecipientType)      {        case  "addr_reply":        case  "addr_other":          select[0].selectedIndex = awGetSelectItemIndex("addr_to");          break;               case "addr_followup":          select[0].selectedIndex = awGetSelectItemIndex("addr_newsgroups");          break;        default:        // e.g. "addr_to","addr_cc","addr_bcc","addr_newsgroups":          select[0].selectedIndex = awGetSelectItemIndex(lastRecipientType);      }          select[0].setAttribute("id", "addressCol1#" + top.MAX_RECIPIENTS);      if (input)        _awSetAutoComplete(select[0], input[0]);    }    // focus on new input widget    if (setFocus && input[0] )      awSetFocus(top.MAX_RECIPIENTS, input[0]);  }}// functions for accessing the elements in the addressing widgetfunction awGetPopupElement(row){    return document.getElementById("addressCol1#" + row);}function awGetInputElement(row){    return document.getElementById("addressCol2#" + row);}function awGetElementByCol(row, col){  var colID = "addressCol" + col + "#" + row;  return document.getElementById(colID);}function awGetListItem(row){  var listbox = document.getElementById('addressingWidget');  if ( listbox && row > 0)  {    var listitems = listbox.getElementsByTagName('listitem');    if ( listitems && listitems.length >= row )      return listitems[row-1];  }  return 0;}function awGetRowByInputElement(inputElement){  var row = 0;  if (inputElement) {    var listitem = inputElement.parentNode.parentNode;    while (listitem) {      if (listitem.localName == "listitem")        ++row;      listitem = listitem.previousSibling;    }  }  return row;}// Copy Node - copy this node and insert ahead of the (before) node.  Append to end if before=0function awCopyNode(node, parentNode, beforeNode){  var newNode = node.cloneNode(true);  if ( beforeNode )    parentNode.insertBefore(newNode, beforeNode);  else    parentNode.appendChild(newNode);    return newNode;}// remove rowfunction awRemoveRow(row){  var listbox = document.getElementById('addressingWidget');  awRemoveNodeAndChildren(listbox, awGetListItem(row));  awFitDummyRows();  top.MAX_RECIPIENTS --;}function awRemoveNodeAndChildren(parent, nodeToRemove){  nodeToRemove.parentNode.removeChild(nodeToRemove);}function awSetFocus(row, inputElement){  top.awRow = row;  top.awInputElement = inputElement;  top.awFocusRetry = 0;  setTimeout("_awSetFocus();", 0);}function _awSetFocus(){  var listbox = document.getElementById('addressingWidget');  //try  //{    var theNewRow = awGetListItem(top.awRow);    //Warning: firstVisibleRow is zero base but top.awRow is one base!    var firstVisibleRow = listbox.getIndexOfFirstVisibleRow();    var numOfVisibleRows = listbox.getNumberOfVisibleRows();    //Do we need to scroll in order to see the selected row?    if (top.awRow <= firstVisibleRow)      listbox.scrollToIndex(top.awRow - 1);    else      if (top.awRow - 1 >= (firstVisibleRow + numOfVisibleRows))        listbox.scrollToIndex(top.awRow - numOfVisibleRows);    top.awInputElement.focus();  /*}  catch(ex)  {    top.awFocusRetry ++;    if (top.awFocusRetry < 3)    {      dump("_awSetFocus failed, try it again...\n");      setTimeout("_awSetFocus();", 0);    }    else      dump("_awSetFocus failed, forget about it!\n");  }*/}function awTabFromRecipient(element, event){  //If we are the last element in the listbox, we don't want to create a new row.  if (element == awGetInputElement(top.MAX_RECIPIENTS))    top.doNotCreateANewRow = true;  var row = awGetRowByInputElement(element);  if (!event.shiftKey && row < top.MAX_RECIPIENTS) {    var listBoxRow = row - 1; // listbox row indices are 0-based, ours are 1-based.    var listBox = document.getElementById("addressingWidget");    listBox.listBoxObject.ensureIndexIsVisible(listBoxRow + 1);  }  // be sure to add the user add recipient to our ignore list  // when the user tabs out of an autocomplete line...  addRecipientsToIgnoreList(element.value);}function awTabFromMenulist(element, event){  var row = awGetRowByInputElement(element);  if (event.shiftKey && row > 1) {    var listBoxRow = row - 1; // listbox row indices are 0-based, ours are 1-based.    var listBox = document.getElementById("addressingWidget");    listBox.listBoxObject.ensureIndexIsVisible(listBoxRow - 1);  }}function awGetNumberOfRecipients(){    return top.MAX_RECIPIENTS;}function DragOverAddressingWidget(event){  var validFlavor = false;  var dragSession = dragSession = gDragService.getCurrentSession();  if (dragSession.isDataFlavorSupported("text/x-moz-address"))     validFlavor = true;  if (validFlavor)    dragSession.canDrop = true;}function DropOnAddressingWidget(event){  var dragSession = gDragService.getCurrentSession();    var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);  trans.addDataFlavor("text/x-moz-address");  for ( var i = 0; i < dragSession.numDropItems; ++i )  {    dragSession.getData ( trans, i );    var dataObj = new Object();    var bestFlavor = new Object();    var len = new Object();    trans.getAnyTransferData ( bestFlavor, dataObj, len );    if ( dataObj )        dataObj = dataObj.value.QueryInterface(Components.interfaces.nsISupportsString);    if ( !dataObj )       continue;    // pull the address out of the data object    var address = dataObj.data.substring(0, len.value);    if (!address)      continue;    DropRecipient(event.target, address);  }}function DropRecipient(target, recipient){  // break down and add each address  return parseAndAddAddresses(recipient, awGetPopupElement(top.MAX_RECIPIENTS).selectedItem.getAttribute("value"));}function _awSetAutoComplete(selectElem, inputElem){  inputElem.disableAutocomplete = selectElem.value == 'addr_newsgroups' || selectElem.value == 'addr_followup' || selectElem.value == 'addr_other';}function awSetAutoComplete(rowNumber){    var inputElem = awGetInputElement(rowNumber);    var selectElem = awGetPopupElement(rowNumber);    _awSetAutoComplete(selectElem, inputElem)}function awRecipientTextCommand(userAction, element){  if (userAction == "typing" || userAction == "scrolling")    awReturnHit(element);}// Called when an autocomplete session item is selected and the status of// the session it was selected from is nsIAutoCompleteStatus::failureItems.//// As of this writing, the only way that can happen is when an LDAP // autocomplete session returns an error to be displayed to the user.//// There are hardcoded messages in here, but these are just fallbacks for// when string bundles have already failed us.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久不见久久见免费视频1| 狠狠色丁香久久婷婷综合丁香| xfplay精品久久| 欧美日韩视频一区二区| 高清在线成人网| 九九九精品视频| 性做久久久久久免费观看| 中文字幕一区二区在线观看| 亚洲精品一区二区三区香蕉| 91精品一区二区三区久久久久久| 欧美中文一区二区三区| 99v久久综合狠狠综合久久| 国产一区视频导航| 日本欧美加勒比视频| 午夜一区二区三区在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 99国产精品国产精品毛片| 国产麻豆精品在线| 九九精品一区二区| 韩国av一区二区三区四区| 另类人妖一区二区av| 天天综合天天综合色| 亚洲综合在线视频| 亚洲永久精品国产| 一区二区三区在线影院| 亚洲精品日韩专区silk| 亚洲欧洲精品成人久久奇米网| 日本一区二区三区四区| 中文字幕亚洲区| 亚洲欧美一区二区三区国产精品| 精品剧情在线观看| 日韩欧美国产综合| 久久综合国产精品| 国产欧美精品一区二区三区四区| 欧美高清在线精品一区| 国产精品免费aⅴ片在线观看| 国产精品区一区二区三区| 久久精品欧美一区二区三区不卡| 久久精品免费在线观看| 国产精品国产三级国产aⅴ无密码| 国产精品麻豆视频| 亚洲免费观看高清| 亚洲国产欧美一区二区三区丁香婷| 一二三区精品视频| 亚洲精品视频自拍| 午夜精品视频在线观看| 亚洲精品videosex极品| 亚洲综合激情另类小说区| 亚洲午夜精品久久久久久久久| 中文字幕日本乱码精品影院| 亚洲一区二区中文在线| 免费观看日韩av| 国产精品亚洲午夜一区二区三区| 成人午夜激情片| 欧美日韩亚洲高清一区二区| 91精品国产入口| 久久只精品国产| 国产精品久久久久一区 | 亚洲一区在线电影| 日本va欧美va精品| 国产成人久久精品77777最新版本| 97久久精品人人做人人爽| 欧美高清视频www夜色资源网| 精品国产91乱码一区二区三区| 中文字幕一区二区三区在线不卡 | 粉嫩aⅴ一区二区三区四区| 91色porny在线视频| 这里是久久伊人| 国产精品丝袜黑色高跟| 午夜欧美在线一二页| 国产白丝精品91爽爽久久| 欧美午夜在线一二页| 欧美精品一区二区三| 亚洲精品久久嫩草网站秘色| 久久se精品一区精品二区| 92精品国产成人观看免费| 91精品国产色综合久久不卡蜜臀| 中文字幕乱码日本亚洲一区二区| 午夜精品成人在线| 成人免费的视频| 91精品国产综合久久福利软件| 国产精品久久久久天堂| 一区二区三区免费在线观看| 激情国产一区二区| 色婷婷综合久久久| 精品sm捆绑视频| 亚洲国产日韩av| 成人在线综合网| 日韩欧美在线影院| 一区二区欧美在线观看| 国产精品一区专区| 日韩一级大片在线观看| 91丨porny丨国产入口| 日韩三级视频在线观看| 一区二区三区四区在线| 极品美女销魂一区二区三区| 欧美剧情片在线观看| 亚洲黄色av一区| 国产一区二区91| 日韩午夜中文字幕| 亚洲美女在线国产| 成人精品在线视频观看| 日韩欧美电影一区| 亚洲午夜电影在线观看| 成人av片在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲国产综合色| 在线观看免费亚洲| 亚洲精品水蜜桃| 91蜜桃视频在线| 国产精品国产三级国产三级人妇 | 无码av免费一区二区三区试看| 91在线丨porny丨国产| 国产亚洲欧美日韩在线一区| 美女视频一区在线观看| 欧美精品免费视频| 亚洲小少妇裸体bbw| 日本韩国欧美一区二区三区| 中文字幕亚洲一区二区av在线| 国产成人综合亚洲91猫咪| 久久综合色婷婷| 国产一区二区三区精品视频| 精品国精品国产| 精品午夜久久福利影院| 日韩欧美中文字幕制服| 免费在线看成人av| 日韩欧美精品在线| 久久99精品一区二区三区| 精品欧美黑人一区二区三区| 美女视频免费一区| 精品国产精品一区二区夜夜嗨| 久久国产婷婷国产香蕉| 久久亚洲影视婷婷| 国产不卡免费视频| 亚洲人成在线播放网站岛国| 国产a视频精品免费观看| 国产精品水嫩水嫩| 色屁屁一区二区| 天天色综合成人网| 欧美一级片在线| 国产一区二区在线观看视频| 久久久久久久久久电影| 丰满白嫩尤物一区二区| 亚洲色图视频网站| 欧美日韩在线不卡| 老汉av免费一区二区三区| 久久美女艺术照精彩视频福利播放| 国产精品综合久久| 亚洲免费观看高清完整版在线 | 91日韩精品一区| 亚洲欧美日韩国产一区二区三区| 欧美午夜精品一区| 另类小说欧美激情| 亚洲国产经典视频| 在线一区二区三区四区五区| 一区二区三区国产豹纹内裤在线| 91国在线观看| 日本欧美加勒比视频| 国产三级一区二区| 成人福利视频网站| 丰满少妇久久久久久久| 亚洲一区二区成人在线观看| 日韩三级中文字幕| 国产精品2024| 亚洲福利视频一区二区| 日韩欧美精品在线视频| 99久久综合精品| 婷婷综合在线观看| 中国av一区二区三区| 精品1区2区3区| 国产91精品一区二区麻豆网站| 国产精品国产馆在线真实露脸 | 久久久不卡影院| 欧美视频一区二区三区四区| 韩国一区二区视频| 一区二区三区在线视频观看58| 日韩一级大片在线| www.日韩av| 极品美女销魂一区二区三区| 成人欧美一区二区三区1314| 欧美v日韩v国产v| 91伊人久久大香线蕉| 久久69国产一区二区蜜臀| 一区二区在线观看视频| 久久久一区二区三区捆绑**| 在线观看不卡一区| 国产成人综合亚洲91猫咪| 亚洲精品v日韩精品| 久久精品日产第一区二区三区高清版| 欧美色视频一区| 成人99免费视频| 久久se精品一区二区| 亚洲成人av一区二区| 久久久久久久综合色一本| 日韩视频免费观看高清完整版| 欧美精品色综合| 欧美日韩高清一区二区| 在线视频观看一区| 日本高清成人免费播放| 日本高清不卡视频|