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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? compose.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
字號:
# -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-# ***** BEGIN LICENSE BLOCK *****# Version: MPL 1.1/GPL 2.0/LGPL 2.1## The contents of this file are subject to the Mozilla Public License Version# 1.1 (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at# http://www.mozilla.org/MPL/## Software distributed under the License is distributed on an "AS IS" basis,# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License# for the specific language governing rights and limitations under the# License.## The Original Code is the Thunderbird Preferences System.## The Initial Developer of the Original Code is# Scott MacGregor.# Portions created by the Initial Developer are Copyright (C) 2005# the Initial Developer. All Rights Reserved.## Contributor(s):#   Scott MacGregor <mscott@mozilla.org>## Alternatively, the contents of this file may be used under the terms of# either the GNU General Public License Version 2 or later (the "GPL"), or# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),# in which case the provisions of the GPL or the LGPL are applicable instead# of those above. If you wish to allow use of your version of this file only# under the terms of either the GPL or the LGPL, and not to allow others to# use your version of this file under the terms of the MPL, indicate your# decision by deleting the provisions above and replace them with the notice# and other provisions required by the GPL or the LGPL. If you do not delete# the provisions above, a recipient may use your version of this file under# the terms of any one of the MPL, the GPL or the LGPL.## ***** END LICENSE BLOCK *****const kLDAPPrefContractID="@mozilla.org/ldapprefs-service;1";var gRefresh = false; // leftover hack from the old preferences dialogvar gComposePane = {  mInitialized: false,  mDirectories: null,  mLDAPPrefsService: null,  mSpellChecker: null,  mDictCount : 0,  init: function ()  {    if (kLDAPPrefContractID in Components.classes)      this.mLDAPPrefsService = Components.classes[kLDAPPrefContractID].getService(Components.interfaces.nsILDAPPrefsService);    this.createDirectoriesList();        // build the local address book menu list. We do this by hand instead of using the xul template    // builder because of Bug #285076,     this.createLocalDirectoriesList();        this.enableAutocomplete();    this.initLanguageMenu();    this.populateFonts();    document.getElementById('downloadDictionaries').setAttribute('href', this.getDictionaryURL());      var preference = document.getElementById("mail.preferences.compose.selectedTabIndex");    if (preference.value)      document.getElementById("composePrefs").selectedIndex = preference.value;    this.mInitialized = true;  },  getDictionaryURL: function()  {    var formatter = Components.classes["@mozilla.org/toolkit/URLFormatterService;1"]                    .getService(Components.interfaces.nsIURLFormatter);                        return formatter.formatURLPref("spellchecker.dictionaries.download.url");  },  tabSelectionChanged: function ()  {    if (this.mInitialized)    {      var preference = document.getElementById("mail.preferences.compose.selectedTabIndex");      preference.valueFromPreferences = document.getElementById("composePrefs").selectedIndex;    }  },  sendOptionsDialog: function()  {    document.documentElement.openSubDialog("chrome://messenger/content/preferences/sendoptions.xul","", null);      },  htmlComposeDialog: function()  {    document.documentElement.openSubDialog("chrome://messenger/content/preferences/htmlcompose.xul","", null);    },  enableAutocomplete: function()   {    var directoriesList =  document.getElementById("directoriesList");     var directoriesListPopup = document.getElementById("directoriesListPopup");    var editButton = document.getElementById("editButton");    if (document.getElementById("autocompleteLDAP").checked)     {      editButton.removeAttribute("disabled");      directoriesList.removeAttribute("disabled");      directoriesListPopup.removeAttribute("disabled");    }    else     {      directoriesList.setAttribute("disabled", true);      directoriesListPopup.setAttribute("disabled", true);      editButton.setAttribute("disabled", true);    }    // if we do not have any directories disable the dropdown list box    if (!this.mDirectories || (this.mDirectories < 1))      directoriesList.setAttribute("disabled", true);    },  createLocalDirectoriesList: function ()   {    var abPopup = document.getElementById("abPopup-menupopup");    if (abPopup)       this.loadLocalDirectories(abPopup);  },  loadLocalDirectories: function (aPopup)  {    var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]                     .getService(Components.interfaces.nsIRDFService);    var parentDir = rdfService.GetResource("moz-abdirectory://").QueryInterface(Components.interfaces.nsIAbDirectory);    var enumerator = parentDir.childNodes;    var preference = document.getElementById("mail.collect_addressbook");    if (enumerator)    {      while (enumerator.hasMoreElements())      {        var addrbook = enumerator.getNext();        if (addrbook instanceof Components.interfaces.nsIAbDirectory && !addrbook.isRemote && !addrbook.isMailList)        {          var abURI = addrbook.directoryProperties.URI;          item = document.createElement("menuitem");          item.setAttribute("label", addrbook.dirName);          item.setAttribute("value", abURI);          aPopup.appendChild(item);             if (preference.value == abURI)          {            aPopup.parentNode.value = abURI;            aPopup.selectedItem = item;          }        }      }    }  },  createDirectoriesList: function()  {    var directoriesListPopup = document.getElementById("directoriesListPopup");    if (directoriesListPopup)       this.loadDirectories(directoriesListPopup);  },  loadDirectories: function(aPopup)  {    var prefCount = {value:0};    var description = "";    var item;    var j=0;    var arrayOfDirectories;    var position;    var dirType;    var prefService;        prefService = Components.classes["@mozilla.org/preferences-service;1"]                            .getService(Components.interfaces.nsIPrefBranch);        if (!this.mDirectories)     {      try       {        if (this.mLDAPPrefsService)          arrayOfDirectories = this.mLDAPPrefsService.getServerList(prefService, prefCount);      }      catch (ex) {}      if (arrayOfDirectories)       {        this.mDirectories = new Array();        for (var i = 0; i < prefCount.value; i++)        {          if ((arrayOfDirectories[i] != "ldap_2.servers.pab") &&             (arrayOfDirectories[i] != "ldap_2.servers.history"))           {            try             {              position = prefService.getIntPref(arrayOfDirectories[i]+".position");            }             catch(ex)            {              position = 1;            }                      try            {              dirType = prefService.getIntPref(arrayOfDirectories[i]+".dirType");            }            catch(ex)            {              dirType = 1;            }            if ((position != 0) && (dirType == 1))             {              try              {                description = prefService.getComplexValue(arrayOfDirectories[i]+".description",                                                       Components.interfaces.nsISupportsString).data;              }              catch(ex)              {                description="";              }                            if (description != "")               {                if (aPopup)                 {                  item = document.createElement("menuitem");                  item.setAttribute("label", description);                  item.setAttribute("value", arrayOfDirectories[i]);                  aPopup.appendChild(item);                }                              this.mDirectories[j++] = {value:arrayOfDirectories[i], label:description};              }            }          }        }              if (aPopup)         {          // we are in mail/news Account settings          item = document.createElement("menuitem");          var addressBookBundle = document.getElementById("bundle_addressBook");          var directoryName = addressBookBundle.getString("directoriesListItemNone");          item.setAttribute("label", directoryName);          item.setAttribute("value", "");          aPopup.appendChild(item);          // Now check what we are displaying is valid.          var directoriesList =  document.getElementById("directoriesList");          var value = directoriesList.value;          directoriesList.selectedItem = null;          directoriesList.value = value;          if (!directoriesList.selectedItem)           {            directoriesList.value = "";            // If we have no other directories, also disable the popup.            if (gAvailDirectories.length == 0)              directoriesList.disabled = true;          }          else if (!prefService.prefIsLocked("ldap_2.autoComplete.directoryServer"))            directoriesList.disabled = false;        }      }    }  },  editDirectories: function()  {    var args = {fromGlobalPref: true};    window.openDialog("chrome://messenger/content/addressbook/pref-editdirectories.xul",                      "editDirectories", "chrome,modal=yes,resizable=no", args);    if (gRefresh)    {      var popup = document.getElementById("directoriesListPopup");      if (popup)         while (popup.hasChildNodes())          popup.removeChild(popup.lastChild);    }    this.mDirectories = null;    this.loadDirectories(popup);    gRefresh = false;  },  initLanguageMenu: function ()  {    this.mSpellChecker = Components.classes['@mozilla.org/spellchecker/myspell;1'].getService(Components.interfaces.mozISpellCheckingEngine);    var o1 = {};    var o2 = {};    // Get the list of dictionaries from    // the spellchecker.    this.mSpellChecker.getDictionaryList(o1, o2);    var dictList = o1.value;    var count    = o2.value;    // If dictionary count hasn't changed then no need to update the menu.    if (this.mDictCount == count)      return;    // Store current dictionary count.    this.mDictCount = count;    // Load the string bundles that will help us map    // RFC 1766 strings to UI strings.    // Load the language string bundle.    var languageBundle = document.getElementById("languageBundle");    var regionBundle = null;    // If we have a language string bundle, load the region string bundle.    if (languageBundle)      regionBundle = document.getElementById("regionBundle");      var menuStr2;    var isoStrArray;    var langId;    var langLabel;    var i;    for (i = 0; i < count; i++)    {      try {        langId = dictList[i];        isoStrArray = dictList[i].split("-");        if (languageBundle && isoStrArray[0])          langLabel = languageBundle.getString(isoStrArray[0].toLowerCase());        if (regionBundle && langLabel && isoStrArray.length > 1 && isoStrArray[1])        {          menuStr2 = regionBundle.getString(isoStrArray[1].toLowerCase());          if (menuStr2)            langLabel += "/" + menuStr2;        }        if (langLabel && isoStrArray.length > 2 && isoStrArray[2])          langLabel += " (" + isoStrArray[2] + ")";        if (!langLabel)          langLabel = langId;      } catch (ex) {        // getString throws an exception when a key is not found in the        // bundle. In that case, just use the original dictList string.        langLabel = langId;      }      dictList[i] = [langLabel, langId];    }      // sort by locale-aware collation    dictList.sort(      function compareFn(a, b)      {        return a[0].localeCompare(b[0]);      }    );    var languageMenuList = document.getElementById("languageMenuList");    // Remove any languages from the list.    var languageMenuPopup = languageMenuList.firstChild;    while (languageMenuPopup.hasChildNodes())      languageMenuPopup.removeChild(languageMenuPopup.firstChild);    var curLang  = languageMenuList.value;    var defaultItem = null;    for (i = 0; i < count; i++)    {      var item = languageMenuList.appendItem(dictList[i][0], dictList[i][1]);      if (curLang && dictList[i][1] == curLang)        defaultItem = item;    }    // Now make sure the correct item in the menu list is selected.    if (defaultItem)      languageMenuList.selectedItem = defaultItem;    else      languageMenuList.selectedIndex = 0;        },    populateFonts: function()   {    var fontsList = document.getElementById("FontSelect");    try     {      var enumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"]                                 .getService(Components.interfaces.nsIFontEnumerator);      var localFontCount = { value: 0 }      var localFonts = enumerator.EnumerateAllFonts(localFontCount);      for (var i = 0; i < localFonts.length; ++i)       {        if (localFonts[i] != "")           fontsList.appendItem(localFonts[i], localFonts[i]);      }    }    catch(e) { }   },      restoreHTMLDefaults: function()   {     // reset throws an exception if the pref value is already the default so     // work around that with some try/catch exception handling     try {       document.getElementById('msgcompose.font_face').reset();     } catch (ex) {}     try {       document.getElementById('msgcompose.font_size').reset();     } catch (ex) {}     try {       document.getElementById('msgcompose.text_color').reset();     } catch (ex) {}     try {       document.getElementById('msgcompose.background_color').reset();     } catch (ex) {}   },  };

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩色一区| 国产美女在线精品| 欧美日韩久久不卡| 粉嫩aⅴ一区二区三区四区 | 国产伦精品一区二区三区免费 | 欧美久久久久免费| 蜜桃精品视频在线观看| 亚洲综合在线观看视频| 国产精品国产三级国产普通话99| 在线综合视频播放| 欧美日韩中文一区| 欧美日韩中文一区| 欧美日韩精品一区二区三区四区| 色综合视频在线观看| 99精品视频在线免费观看| 国产精品自拍网站| 国产成人av电影在线| 成人综合在线视频| 成人国产一区二区三区精品| 成人小视频在线| av一区二区三区| 99vv1com这只有精品| 99这里只有久久精品视频| 国产综合色在线| 国产精品91一区二区| 高清不卡一区二区在线| 国产一区久久久| 国产在线精品免费| 国产精品一区二区黑丝| www.欧美色图| 欧美亚洲高清一区| 97久久久精品综合88久久| 日本乱人伦aⅴ精品| 91成人在线精品| 5月丁香婷婷综合| 97aⅴ精品视频一二三区| 久久狠狠亚洲综合| 色诱视频网站一区| 国产亚洲成aⅴ人片在线观看| 亚洲视频一区在线| 狠狠色2019综合网| 欧美在线观看你懂的| 国产欧美日韩精品一区| 免费观看在线综合| 欧美亚洲高清一区| 亚洲婷婷在线视频| 国产成人啪午夜精品网站男同| 欧美在线免费观看亚洲| 国产欧美日韩三区| 黄色日韩网站视频| 91视频观看免费| 久久亚洲二区三区| 麻豆精品久久精品色综合| 色丁香久综合在线久综合在线观看| 日韩欧美电影在线| 亚洲成人动漫一区| 91国在线观看| 国产精品国产三级国产a| 毛片av一区二区三区| 欧美日韩国产片| 亚洲国产综合91精品麻豆| 成人福利视频网站| 国产精品人妖ts系列视频| 国产在线播放一区二区三区| 日韩一级二级三级| 奇米色一区二区三区四区| 欧美精品久久一区二区三区| 一区二区三区成人在线视频| bt欧美亚洲午夜电影天堂| 国产视频一区二区三区在线观看| 激情综合网天天干| 精品国产一区二区三区四区四| 日本怡春院一区二区| 欧美一区二区三区在线看| 日韩av在线免费观看不卡| 91精品国产综合久久小美女| 日韩av网站在线观看| 欧美一区二区三区系列电影| 免费视频最近日韩| 亚洲精品一区二区三区影院| 韩国一区二区视频| 欧美激情一区二区三区| thepron国产精品| 亚洲男同性视频| 欧美日韩国产精选| 久久国产福利国产秒拍| 久久精品免视看| 97精品超碰一区二区三区| 亚洲一区二区三区在线播放| 精品视频全国免费看| 蜜桃视频第一区免费观看| 久久久久免费观看| 97久久超碰精品国产| 日韩影院免费视频| 精品国产91九色蝌蚪| 不卡的av电影在线观看| 亚洲一区免费观看| 精品免费一区二区三区| 成人深夜福利app| 亚洲成人免费视| 国产午夜精品一区二区三区嫩草| a在线欧美一区| 爽爽淫人综合网网站 | 亚洲第四色夜色| 日韩一级在线观看| 成人黄色大片在线观看| 亚洲va韩国va欧美va精品| 337p日本欧洲亚洲大胆色噜噜| 成人高清在线视频| 日韩 欧美一区二区三区| 久久久国产精华| 欧美日本一区二区三区| 成人一级视频在线观看| 日韩精品免费专区| 自拍偷在线精品自拍偷无码专区| 欧美久久一二区| 成人av手机在线观看| 秋霞电影网一区二区| 一区在线中文字幕| 久久综合九色综合久久久精品综合 | 男人的天堂久久精品| 国产精品久久久久久久久免费丝袜| 欧美日韩精品一区二区三区蜜桃| 国产成人8x视频一区二区| 欧美aaaaaa午夜精品| 亚洲最新在线观看| 亚洲三级在线看| 中文字幕的久久| 久久影院视频免费| 欧美一区二区黄色| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产在线精品一区二区三区不卡| 日韩精彩视频在线观看| 亚洲免费伊人电影| 中文字幕在线一区二区三区| 精品久久久久久久久久久久久久久久久 | 国产精品传媒入口麻豆| 欧美不卡一区二区三区| 538在线一区二区精品国产| 色综合中文字幕| www.欧美.com| eeuss鲁片一区二区三区在线看| 另类小说色综合网站| 日韩国产欧美在线视频| 亚洲综合小说图片| 亚洲一区免费在线观看| 亚洲色图在线看| 一个色妞综合视频在线观看| 综合在线观看色| 亚洲男人的天堂网| 亚洲在线中文字幕| 洋洋成人永久网站入口| 午夜国产精品一区| 午夜精品视频在线观看| 亚洲va天堂va国产va久| 午夜精品久久久久| 免费精品视频在线| 激情文学综合网| 国产伦精品一区二区三区在线观看| 国内精品伊人久久久久av一坑| 六月丁香婷婷久久| 国产在线不卡一卡二卡三卡四卡| 国产综合一区二区| 成人高清在线视频| 欧洲一区二区av| 欧美日韩国产精品自在自线| 日韩欧美在线观看一区二区三区| 欧美一区二区视频观看视频| 精品99久久久久久| 亚洲国产精品成人久久综合一区| 欧美韩国一区二区| 亚洲永久免费av| 日韩va亚洲va欧美va久久| 久久精品国产77777蜜臀| 韩国精品免费视频| 91蜜桃传媒精品久久久一区二区| 91福利社在线观看| 精品少妇一区二区三区| 日本一区二区免费在线观看视频| 国产精品久久二区二区| 亚洲mv在线观看| 国产一区二区在线免费观看| 99精品久久只有精品| 7777精品伊人久久久大香线蕉经典版下载 | 成人丝袜高跟foot| 在线观看亚洲精品视频| 日韩一区二区三区视频在线 | 久久影院视频免费| 伊人一区二区三区| 狠狠色综合播放一区二区| 99re这里只有精品6| 91精品婷婷国产综合久久竹菊| 久久蜜桃av一区二区天堂| 亚洲婷婷综合久久一本伊一区| 丝袜脚交一区二区| aaa欧美日韩| 日韩精品一区二区三区swag | 福利一区二区在线| 欧美色视频在线观看| 久久亚洲免费视频|