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

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

?? newmailalert.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
字號:
/* ***** 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 mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): *   Scott MacGregor <mscott@mozilla.org> *   Jens Bannmann <jens.b@web.de> * * 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 HORIZONTAL = 1;const LEFT = 2;const TOP = 4;var gSlideTime = 50;var gNumNewMsgsToShowInAlert = 4; // the more messages we show in the alert, the larger it will bevar gOpenTime = 3000; // total time the alert should stay up once we are done animating.var gAlertListener = null;var gPendingPreviewFetchRequests = 0;var gUserInitiated = false;var gFadeIncrement = .05;var gOrigin = 0;function prefillAlertInfo(){  // unwrap all the args....  // arguments[0] --> array of folders with new mail  // arguments[1] --> the observer to call back with notifications about the alert  // arguments[2] --> user initiated boolean. true if the user initiated opening the alert   //                 (which means skip the fade effect and don't auto close the alert)  // arguments[3] --> the alert origin returned by the look and feel  var foldersWithNewMail = window.arguments[0];    gAlertListener = window.arguments[1];  gUserInitiated = window.arguments[2];  gOrigin = window.arguments[3];  // for now just grab the first folder which should be a root folder  // for the account that has new mail.   var rootFolder = foldersWithNewMail.GetElementAt(0).QueryInterface(Components.interfaces.nsIWeakReference).QueryReferent(Components.interfaces.nsIMsgFolder);  // generate an account label string based on the root folder  var label = document.getElementById('alertTitle');  var totalNumNewMessages = rootFolder.getNumNewMessages(true);  label.value = document.getElementById('bundle_messenger').getFormattedString(totalNumNewMessages == 1 ? "newBiffNotification_message" : "newBiffNotification_messages",                                                                                      [rootFolder.prettiestName, totalNumNewMessages]);  // this is really the root folder and we have to walk through the list to find the real folder that has new mail in it...:(  var allFolders = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);  rootFolder.ListDescendents(allFolders);  var numFolders = allFolders.Count();  var folderSummaryInfoEl = document.getElementById('folderSummaryInfo');  folderSummaryInfoEl.mMaxMsgHdrsInPopup = gNumNewMsgsToShowInAlert;  for (var folderIndex = 0; folderIndex < numFolders; folderIndex++)  {    var folder = allFolders.GetElementAt(folderIndex).QueryInterface(Components.interfaces.nsIMsgFolder);    if (folder.hasNewMessages)    {      var asyncFetch = {};      folderSummaryInfoEl.parseFolder(folder, new urlListener(folder), asyncFetch);      if (asyncFetch.value)        gPendingPreviewFetchRequests++;    }  }}function urlListener(aFolder){  this.mFolder = aFolder;}urlListener.prototype = {  OnStartRunningUrl: function(aUrl)  {  },  OnStopRunningUrl: function(aUrl, aExitCode)  {    var folderSummaryInfoEl = document.getElementById('folderSummaryInfo');    var asyncFetch = {};    folderSummaryInfoEl.parseFolder(this.mFolder, null, asyncFetch);    gPendingPreviewFetchRequests--;    // when we are done running all of our urls for fetching the preview text,    // start the alert.    if (!gPendingPreviewFetchRequests)      showAlert();  },}function onAlertLoad(){  // read out our initial settings from prefs.  try   {    var prefBranch = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);    gSlideTime = prefBranch.getIntPref("alerts.slideIncrementTime");    gOpenTime = prefBranch.getIntPref("alerts.totalOpenTime");  } catch (ex) {}    // bogus call to make sure the window is moved offscreen until we are ready for it.  resizeAlert(true);  // if we aren't waiting to fetch preview text, then go ahead and   // start showing the alert.  if (!gPendingPreviewFetchRequests)    setTimeout(showAlert, 0); // let the JS thread unwind, to give layout                               // a chance to recompute the styles and widths for our alert text.}// If the user initiated the alert, show it right away, otherwise start opening the alert with// the fade effect. function showAlert(){  if (!gUserInitiated) // set the initial opacity before we resize the window    document.getElementById('alertContainer').style.opacity = 0;    // resize the alert based on our current content    resizeAlert(false);    if (document.getElementById('folderSummaryInfo').hasMessages)  {    if (!gUserInitiated) // don't fade in if the user opened the alert      setTimeout(fadeOpen, gSlideTime);  }  else    closeAlert(); // no mail, so don't bother showing the alert...}function resizeAlert(aMoveOffScreen){  // sizeToContent is not working. It isn't honoring the max widths we are attaching to our inner  // objects like the folder summary element. While the folder summary element is cropping,   // sizeToContent ends up thinking the window needs to be much wider than it should be.   // use resizeTo and make up our measurements...  //sizeToContent();    // Use the wider of the alert groove and the folderSummaryInfo box, then   // add on the width of alertImageBox + some small amount of fudge. For the height,   // just use the size of the alertBox, that appears to be pretty accurate.  var windowWidth = Math.max (document.getBoxObjectFor(document.getElementById('alertGroove')).width,                              document.getBoxObjectFor(document.getElementById('folderSummaryInfo')).width);  resizeTo(windowWidth + document.getBoxObjectFor(document.getElementById('alertImageBox')).width + 30,            document.getBoxObjectFor(document.getElementById('alertBox')).height + 10);                         // leftover hack to get the window properly hidden when we first open it  if (aMoveOffScreen)    window.outerHeight = 1;  // Determine position and move window  var x = gOrigin & LEFT ? screen.availLeft :          (screen.availLeft + screen.availWidth - window.outerWidth);  var y = gOrigin & TOP ? screen.availTop :          (screen.availTop + screen.availHeight - window.outerHeight);  window.moveTo(x, y);}function fadeOpen(){  var alertContainer = document.getElementById('alertContainer');  var newOpacity = parseFloat(window.getComputedStyle(alertContainer, "").opacity) + gFadeIncrement;  alertContainer.style.opacity = newOpacity;    if (newOpacity < 1.0)        setTimeout(fadeOpen, gSlideTime);  else // switch gears and start closing the alert    setTimeout(fadeClose, gOpenTime);  }function fadeClose(){  var alertContainer = document.getElementById('alertContainer');  var newOpacity = parseFloat(window.getComputedStyle(alertContainer, "").opacity) - gFadeIncrement;  alertContainer.style.opacity = newOpacity;    if (newOpacity <= 0)    closeAlert();  else    setTimeout(fadeClose, gSlideTime);}function closeAlert(){  if (gAlertListener)    gAlertListener.observe(null, "alertfinished", "");   window.close(); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人网| 91麻豆精品国产无毒不卡在线观看| av网站免费线看精品| 色婷婷综合久久久久中文| 欧美日韩免费视频| 日韩精品一区二区三区视频| 国产欧美1区2区3区| 亚洲18女电影在线观看| 精品一区二区av| 99re这里只有精品首页| 日韩丝袜美女视频| 国产精品乱码一区二三区小蝌蚪| 亚洲成人午夜影院| 成人激情小说乱人伦| 欧美挠脚心视频网站| 日本一区二区三区久久久久久久久不 | 91精品在线免费| 国产亚洲精品bt天堂精选| 亚洲午夜在线观看视频在线| 国产综合色在线| 欧美三级韩国三级日本三斤| 国产网红主播福利一区二区| 婷婷夜色潮精品综合在线| 粉嫩av亚洲一区二区图片| 欧美精品色一区二区三区| 欧美国产视频在线| 蜜臀a∨国产成人精品| gogogo免费视频观看亚洲一| 91麻豆精品国产91久久久资源速度| 欧美国产日韩a欧美在线观看| 日韩精品视频网| 91麻豆免费看| 久久久久久免费网| 免费人成黄页网站在线一区二区| 99国产欧美久久久精品| 精品国产欧美一区二区| 亚洲国产精品视频| 91丨九色porny丨蝌蚪| 日韩精品一区二区三区在线| 亚洲成人在线免费| 色悠悠久久综合| 国产午夜亚洲精品午夜鲁丝片 | 日韩一区二区在线观看视频播放| 亚洲欧美视频在线观看| 国产成人aaaa| 久久五月婷婷丁香社区| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线精品视频小说1| 亚洲欧洲日韩一区二区三区| 国产麻豆91精品| 精品美女被调教视频大全网站| 午夜精品国产更新| 欧洲色大大久久| 亚洲欧洲色图综合| 成人免费看片app下载| 久久久久国产精品麻豆| 美女一区二区视频| 91精品国产综合久久精品图片| 亚洲精品国产a久久久久久| 99在线视频精品| 国产精品青草久久| 国产99一区视频免费| 久久久久久免费| 国产成人鲁色资源国产91色综| 欧美成人vr18sexvr| 免费观看一级特黄欧美大片| 欧美一区二区三区婷婷月色| 午夜精品视频一区| 欧美福利一区二区| 日日夜夜精品视频天天综合网| 欧美丝袜丝交足nylons| 亚洲国产三级在线| 欧美久久久久久久久中文字幕| 亚洲午夜在线电影| 欧美日韩一区二区欧美激情| 亚洲v中文字幕| 欧美精品1区2区3区| 午夜影院在线观看欧美| 7777精品伊人久久久大香线蕉最新版| 午夜电影网一区| 日韩欧美激情四射| 精彩视频一区二区三区| 久久久噜噜噜久噜久久综合| 国产精品1区2区3区| 欧美高清在线一区二区| 成人高清视频在线观看| 亚洲精品高清在线观看| 精品视频一区二区不卡| 日产国产欧美视频一区精品| 欧美成人伊人久久综合网| 韩国在线一区二区| 国产精品亲子伦对白| 99国产精品国产精品毛片| 亚洲精品中文字幕在线观看| 欧美日韩专区在线| 久久国产尿小便嘘嘘尿| 国产清纯美女被跳蛋高潮一区二区久久w | 91小宝寻花一区二区三区| 一区二区三区在线观看动漫| 欧美日韩一区二区三区四区五区| 日韩成人一区二区三区在线观看| 日韩欧美黄色影院| 成人黄色在线看| 亚洲国产综合91精品麻豆| 日韩一区二区中文字幕| 国产精品自拍毛片| 综合中文字幕亚洲| 欧美日韩亚洲综合在线| 狠狠色丁香久久婷婷综合_中 | 97精品国产露脸对白| 亚洲国产人成综合网站| 日韩精品一区二区三区视频| 成人综合婷婷国产精品久久 | 在线观看91av| 国产成人午夜精品影院观看视频 | 91精品福利在线| 蜜桃av一区二区三区| 日本一区二区视频在线观看| 欧美三级日韩三级| 精品亚洲成a人| 一区二区视频免费在线观看| 欧美电影精品一区二区| 91免费小视频| 激情欧美日韩一区二区| 亚洲精品视频在线| 亚洲精品一区二区三区四区高清| 91蜜桃视频在线| 激情欧美一区二区三区在线观看| 一区二区三区四区不卡在线 | 久久69国产一区二区蜜臀| 亚洲日本青草视频在线怡红院| 91精品婷婷国产综合久久竹菊| 国产+成+人+亚洲欧洲自线| 午夜av一区二区三区| 中文字幕一区二区三区视频| 欧美一区二区三区视频在线| 99久久免费国产| 国模无码大尺度一区二区三区| 亚洲高清一区二区三区| 国产精品视频线看| 精品久久一二三区| 欧美色窝79yyyycom| 国产91精品露脸国语对白| 首页国产欧美久久| 亚洲欧美另类综合偷拍| 久久综合九色综合欧美亚洲| 欧美人狂配大交3d怪物一区| 91女厕偷拍女厕偷拍高清| 国产精品一区二区久久不卡| 日韩vs国产vs欧美| 一区二区久久久久| 亚洲欧美偷拍另类a∨色屁股| 国产无人区一区二区三区| 欧美不卡123| 69久久99精品久久久久婷婷 | 五月婷婷综合网| 一区二区三区日韩在线观看| 欧美国产精品一区| 久久综合久久99| 日韩精品一区在线| 在线综合+亚洲+欧美中文字幕| 91黄色小视频| 色综合天天综合网国产成人综合天 | 欧美日韩一区不卡| 色猫猫国产区一区二在线视频| www.欧美色图| 成人av电影免费在线播放| 国产999精品久久久久久| 精彩视频一区二区| 激情文学综合网| 国产在线视频不卡二| 国内精品免费**视频| 激情五月婷婷综合| 国产精一区二区三区| 国产在线日韩欧美| 国产精选一区二区三区| 国产乱理伦片在线观看夜一区| 国产一区二区不卡| 国产毛片精品视频| 国产福利91精品一区二区三区| 久久97超碰国产精品超碰| 狠狠色丁香九九婷婷综合五月| 国内精品写真在线观看| 国产一区二区电影| 高清在线观看日韩| 不卡的电影网站| 色哟哟一区二区| 在线亚洲高清视频| 欧美人牲a欧美精品| 91精品国产综合久久久久久| 日韩一区二区麻豆国产| 欧美大黄免费观看| 久久综合色8888| 国产精品欧美久久久久无广告 | 91天堂素人约啪| 色乱码一区二区三区88| 欧美日韩高清一区二区三区| 欧美一级二级三级蜜桃| 久久久青草青青国产亚洲免观| 国产精品国产三级国产a |