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

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

?? mailcommands.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 2 頁
字號:
# -*- Mode: C++; tab-width: 4; 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 Mozilla Communicator client code, released# March 31, 1998.## The Initial Developer of the Original Code is# Netscape Communications Corporation.# Portions created by the Initial Developer are Copyright (C) 1998-1999# the Initial Developer. All Rights Reserved.## Contributor(s):## 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 *****function DoRDFCommand(dataSource, command, srcArray, argumentArray){  var commandResource = RDF.GetResource(command);  if (commandResource) {    try {      if (!argumentArray)        argumentArray = Components.classes["@mozilla.org/supports-array;1"]                        .createInstance(Components.interfaces.nsISupportsArray);      if (argumentArray)        argumentArray.AppendElement(msgWindow);      dataSource.DoCommand(srcArray, commandResource, argumentArray);    }    catch(e) {      if (command == "http://home.netscape.com/NC-rdf#NewFolder") {        throw(e); // so that the dialog does not automatically close.      }      dump("Exception : In mail commands" + e + "\n");    }  }}function GetNewMessages(selectedFolders, server, compositeDataSource){  var numFolders = selectedFolders.length;  if (numFolders > 0)  {    var msgFolder = selectedFolders[0];    // Whenever we do get new messages, clear the old new messages.    if (msgFolder)    {      var nsIMsgFolder = Components.interfaces.nsIMsgFolder;      msgFolder.biffState = nsIMsgFolder.nsMsgBiffState_NoMail;      msgFolder.clearNewMessages();    }    if (compositeDataSource)    {      var folderResource = msgFolder.QueryInterface(Components.interfaces.nsIRDFResource);      var folderArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);      folderArray.AppendElement(folderResource);      var serverArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);      serverArray.AppendElement(server);      DoRDFCommand(compositeDataSource, "http://home.netscape.com/NC-rdf#GetNewMessages", folderArray, serverArray);    }  }  else {    dump("Nothing was selected\n");  }}function getBestIdentity(identities, optionalHint){  var identity = null;  var identitiesCount = identities.Count();  try  {    // if we have more than one identity and a hint to help us pick one    if (identitiesCount > 1 && optionalHint) {      // normalize case on the optional hint to improve our chances of finding a match      optionalHint = optionalHint.toLowerCase();      var id;      // iterate over all of the identities      var tempID;      for (id = 0; id < identitiesCount; ++id) {        tempID = identities.GetElementAt(id).QueryInterface(Components.interfaces.nsIMsgIdentity);        if (optionalHint.indexOf(tempID.email.toLowerCase()) >= 0) {          identity = tempID;          break;        }      }      // if we could not find an exact email address match within the hint fields then maybe the message      // was to a mailing list. In this scenario, we won't have a match based on email address.      // Before we just give up, try and search for just a shared domain between the hint and      // the email addresses for our identities. Hey, it is better than nothing and in the case      // of multiple matches here, we'll end up picking the first one anyway which is what we would have done      // if we didn't do this second search. This helps the case for corporate users where mailing lists will have the same domain      // as one of your multiple identities.      if (!identity) {        for (id = 0; id < identitiesCount; ++id) {          tempID = identities.GetElementAt(id).QueryInterface(Components.interfaces.nsIMsgIdentity);          // extract out the partial domain          var start = tempID.email.lastIndexOf("@"); // be sure to include the @ sign in our search to reduce the risk of false positives          if (optionalHint.search(tempID.email.slice(start).toLowerCase()) >= 0) {            identity = tempID;            break;          }        }      }    }  }  catch (ex) {dump (ex + "\n");}  // Still no matches ?  // Give up and pick the first one (if it exists), like we used to.  if (!identity && identitiesCount > 0)    identity = identities.GetElementAt(0).QueryInterface(Components.interfaces.nsIMsgIdentity);  return identity;}function getIdentityForServer(server, optionalHint){    var identity = null;    if (server) {        // Get the identities associated with this server.        var identities = accountManager.GetIdentitiesForServer(server);        // dump("identities = " + identities + "\n");        // Try and find the best one.        identity = getBestIdentity(identities, optionalHint);    }    return identity;}function GetNextNMessages(folder){  if (folder) {    var newsFolder = folder.QueryInterface(Components.interfaces.nsIMsgNewsFolder);    if (newsFolder) {      newsFolder.getNextNMessages(msgWindow);    }  }}// type is a nsIMsgCompType and format is a nsIMsgCompFormatfunction ComposeMessage(type, format, folder, messageArray){  var msgComposeType = Components.interfaces.nsIMsgCompType;  var identity = null;  var newsgroup = null;  var server;  // dump("ComposeMessage folder=" + folder + "\n");  try  {    if (folder)    {      // Get the incoming server associated with this uri.      server = folder.server;      // If they hit new or reply and they are reading a newsgroup,      // turn this into a new post or a reply to group.      if (!folder.isServer && server.type == "nntp" && type == msgComposeType.New)      {        type = msgComposeType.NewsPost;        newsgroup = folder.folderURL;      }      identity = folder.customIdentity;      if (!identity)        identity = getIdentityForServer(server);      // dump("identity = " + identity + "\n");    }  }  catch (ex)  {    dump("failed to get an identity to pre-select: " + ex + "\n");  }  // dump("\nComposeMessage from XUL: " + identity + "\n");  var uri = null;  if (!msgComposeService)  {    dump("### msgComposeService is invalid\n");    return;  }  if (type == msgComposeType.New)  {    // New message.    // dump("OpenComposeWindow with " + identity + "\n");    // If the addressbook sidebar panel is open and has focus, get    // the selected addresses from it.    if (document.commandDispatcher.focusedWindow.document.documentElement.hasAttribute("selectedaddresses"))      NewMessageToSelectedAddresses(type, format, identity);    else      msgComposeService.OpenComposeWindow(null, null, type, format, identity, msgWindow);    return;  }  else if (type == msgComposeType.NewsPost)  {    // dump("OpenComposeWindow with " + identity + " and " + newsgroup + "\n");    msgComposeService.OpenComposeWindow(null, newsgroup, type, format, identity, msgWindow);    return;  }  messenger.SetWindow(window, msgWindow);  var object = null;  if (messageArray && messageArray.length > 0)  {    uri = "";    for (var i = 0; i < messageArray.length; ++i)    {      var messageUri = messageArray[i];      var hdr = messenger.msgHdrFromURI(messageUri);      // If we treat reply from sent specially, do we check for that folder flag here ?      var hintForIdentity = (type == msgComposeType.Template) ? hdr.author : hdr.recipients + hdr.ccList;      var customIdentity = null;      if (folder)      {        server = folder.server;        customIdentity = folder.customIdentity;      }            var accountKey = hdr.accountKey;      if (accountKey.length > 0)      {        var account = accountManager.getAccount(accountKey);        if (account)          server = account.incomingServer;      }      identity = (server && !customIdentity)         ? getIdentityForServer(server, hintForIdentity)        : customIdentity;                               var messageID = hdr.messageId;      var messageIDScheme = messageID ? messageID.split(":")[0] : "";      if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') &&  "openComposeWindowForRSSArticle" in this)        openComposeWindowForRSSArticle(messageID, hdr, type);      else if (type == msgComposeType.Reply ||               type == msgComposeType.ReplyAll ||               type == msgComposeType.ForwardInline ||               type == msgComposeType.ReplyToGroup ||               type == msgComposeType.ReplyToSender ||               type == msgComposeType.ReplyToSenderAndGroup ||               type == msgComposeType.Template ||               type == msgComposeType.Draft)      {        msgComposeService.OpenComposeWindow(null, messageUri, type, format, identity, msgWindow);        // Limit the number of new compose windows to 8. Why 8 ? I like that number :-)        if (i == 7)          break;      }      else      {        if (i)          uri += ","        uri += messageUri;      }    }    if (type == msgComposeType.ForwardAsAttachment && uri)      msgComposeService.OpenComposeWindow(null, uri, type, format, identity, msgWindow);  }  else    dump("### nodeList is invalid\n");}function NewMessageToSelectedAddresses(type, format, identity) {  var abSidebarPanel = document.commandDispatcher.focusedWindow;  var abResultsTree = abSidebarPanel.document.getElementById("abResultsTree");  var abResultsBoxObject = abResultsTree.treeBoxObject;  var abView = abResultsBoxObject.view;  abView = abView.QueryInterface(Components.interfaces.nsIAbView);  var addresses = abView.selectedAddresses;  var params = Components.classes["@mozilla.org/messengercompose/composeparams;1"].createInstance(Components.interfaces.nsIMsgComposeParams);  if (params) {    params.type = type;    params.format = format;    params.identity = identity;    var composeFields = Components.classes["@mozilla.org/messengercompose/composefields;1"].createInstance(Components.interfaces.nsIMsgCompFields);    if (composeFields) {      var addressList = "";      for (var i = 0; i < addresses.Count(); i++) {        addressList = addressList + (i > 0 ? ",":"") + addresses.QueryElementAt(i,Components.interfaces.nsISupportsString).data;      }      composeFields.to = addressList;      params.composeFields = composeFields;      msgComposeService.OpenComposeWindowWithParams(null, params);    }  }}function CreateNewSubfolder(chromeWindowURL, preselectedMsgFolder,                            dualUseFolders, callBackFunctionName){  var preselectedURI;  if (preselectedMsgFolder)  {    var preselectedFolderResource = preselectedMsgFolder.QueryInterface(Components.interfaces.nsIRDFResource);    if (preselectedFolderResource)      preselectedURI = preselectedFolderResource.Value;    dump("preselectedURI = " + preselectedURI + "\n");  }  window.openDialog(chromeWindowURL,                    "",                    "chrome,titlebar,modal",                    {preselectedURI:preselectedURI,                      dualUseFolders:dualUseFolders,                      okCallback:callBackFunctionName});}function NewFolder(name,uri){  // dump("uri,name = " + uri + "," + name + "\n");  if (uri && (uri != "") && name && (name != "")) {    var selectedFolderResource = RDF.GetResource(uri);    // dump("selectedFolder = " + uri + "\n");    var compositeDataSource = GetCompositeDataSource("NewFolder");    var folderArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);    var nameArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);    folderArray.AppendElement(selectedFolderResource);    var nameLiteral = RDF.GetLiteral(name);    nameArray.AppendElement(nameLiteral);    DoRDFCommand(compositeDataSource, "http://home.netscape.com/NC-rdf#NewFolder", folderArray, nameArray);  }  else {    dump("no name or nothing selected\n");  }}function UnSubscribe(folder){  // Unsubscribe the current folder from the newsserver, this assumes any confirmation has already  // been made by the user  SPL  var server = folder.server;  var subscribableServer = server.QueryInterface(Components.interfaces.nsISubscribableServer);  subscribableServer.unsubscribe(folder.name);  subscribableServer.commitSubscribeChanges();}function Subscribe(preselectedMsgFolder){  var preselectedURI;  if (preselectedMsgFolder)  {    var preselectedFolderResource = preselectedMsgFolder.QueryInterface(Components.interfaces.nsIRDFResource);    if (preselectedFolderResource)      preselectedURI = preselectedFolderResource.Value;    dump("preselectedURI = " + preselectedURI + "\n");  }  window.openDialog("chrome://messenger/content/subscribe.xul",                    "subscribe", "chrome,modal,titlebar,resizable=yes",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本久久精品电影| 亚洲国产经典视频| 国产精品私人自拍| 日本伊人色综合网| 99r国产精品| 久久综合av免费| 五月婷婷色综合| 94色蜜桃网一区二区三区| 亚洲精品一区二区三区四区高清 | 精品精品欲导航| 亚洲精品国产视频| 成人自拍视频在线观看| 日韩精品最新网址| 免费高清在线一区| 777色狠狠一区二区三区| 亚洲综合一区二区| 99国产精品一区| 亚洲欧洲日产国码二区| 国产精品99久久久久久久女警| 91精品国产欧美一区二区18| 亚洲影视在线播放| 在线免费观看日本一区| 中文字幕一区二区三区乱码在线| 51精品视频一区二区三区| 亚洲乱码中文字幕综合| 91色视频在线| 亚洲狠狠丁香婷婷综合久久久| 成人av网站免费| 国产精品美女一区二区三区| 国产盗摄视频一区二区三区| 久久久久99精品国产片| 国产精品一区二区在线观看网站| 欧美不卡123| 久久国产精品99精品国产| 日韩三级伦理片妻子的秘密按摩| 日韩国产精品久久| 欧美va天堂va视频va在线| 国产在线不卡一卡二卡三卡四卡| 久久亚洲私人国产精品va媚药| 国产最新精品免费| 国产午夜亚洲精品午夜鲁丝片| 国产黑丝在线一区二区三区| 国产精品三级电影| 色老汉av一区二区三区| 亚洲成人激情社区| 日韩欧美色电影| 国产精品亚洲视频| 中文字幕日本乱码精品影院| 欧美在线一区二区| 日韩av电影天堂| 久久久亚洲精品石原莉奈| 大胆亚洲人体视频| 亚洲曰韩产成在线| 欧美一区二区免费观在线| 国产传媒一区在线| 亚洲一区二区视频| 精品国内片67194| 99re热这里只有精品免费视频 | 久草中文综合在线| 国产欧美一区二区精品忘忧草| 91免费小视频| 蜜臀av在线播放一区二区三区 | 精品国产区一区| 91在线小视频| 精品亚洲porn| 亚洲日本成人在线观看| 国产成人精品亚洲午夜麻豆| 91麻豆精品国产91久久久久| 一区二区三区美女视频| 亚洲成人福利片| 国产精品综合一区二区三区| 欧美日韩中文字幕精品| 国产色一区二区| 看电视剧不卡顿的网站| 国产盗摄一区二区| 7777精品伊人久久久大香线蕉完整版 | 亚洲美女免费视频| 欧美日韩一区二区三区高清 | 日韩专区一卡二卡| 亚洲国产精华液网站w| 欧美理论电影在线| 91女人视频在线观看| 精品一区免费av| 亚洲国产一区二区a毛片| 国产亚洲一区二区在线观看| 91超碰这里只有精品国产| 99久久免费视频.com| 紧缚奴在线一区二区三区| 亚洲va在线va天堂| 亚洲欧美视频一区| 久久久久97国产精华液好用吗| 91麻豆精品国产91久久久更新时间| 91丝袜国产在线播放| 国产麻豆精品在线| 国产在线精品不卡| 久草在线在线精品观看| 青娱乐精品在线视频| 亚洲一区二区偷拍精品| 亚洲精品视频在线看| 亚洲欧洲一区二区在线播放| 欧美高清一级片在线观看| 久久久久久久久久久黄色| 91麻豆精品国产自产在线| 欧美日韩中文国产| 欧美写真视频网站| 在线观看av一区| 一本色道久久综合精品竹菊| 99热99精品| 99国产精品久久久| 在线观看一区二区视频| 欧美性视频一区二区三区| 一本一本大道香蕉久在线精品 | 久久精品国产精品亚洲综合| 一区二区三区av电影 | 视频一区视频二区中文字幕| 一区二区三区欧美日韩| 一区av在线播放| 亚洲午夜av在线| 男女性色大片免费观看一区二区| 日本欧洲一区二区| 久久 天天综合| 国产98色在线|日韩| 91在线视频网址| 欧美视频在线一区二区三区 | 99精品久久免费看蜜臀剧情介绍| av亚洲精华国产精华精| 91高清视频在线| 欧美久久一二三四区| 欧美不卡123| 欧美激情在线看| 一区二区三区在线观看视频 | 亚洲自拍另类综合| 亚洲成人黄色小说| 精品无人码麻豆乱码1区2区| 国产91精品入口| 91久久精品一区二区三区| 欧美日韩国产一二三| 精品国产乱码久久久久久免费| 国产女人水真多18毛片18精品视频| 中文字幕亚洲在| 亚洲18色成人| 国产sm精品调教视频网站| 在线观看日韩高清av| 91精品国产91久久综合桃花| 久久精品视频在线免费观看| 亚洲同性同志一二三专区| 日韩国产欧美三级| 成人国产在线观看| 6080亚洲精品一区二区| 欧美国产日韩a欧美在线观看| 亚洲综合无码一区二区| 激情深爱一区二区| 欧洲av在线精品| 日韩免费成人网| 亚洲男人的天堂一区二区| 男人的j进女人的j一区| 91香蕉视频污在线| 亚洲精品一区二区三区四区高清| 亚洲免费资源在线播放| 极品销魂美女一区二区三区| 色呦呦日韩精品| 国产欧美日韩激情| 日韩二区三区在线观看| 99r国产精品| 久久综合资源网| 日韩在线卡一卡二| 91免费版pro下载短视频| 久久亚洲综合av| 性欧美疯狂xxxxbbbb| www.日韩在线| 久久综合中文字幕| 奇米色一区二区三区四区| 一本色道久久综合狠狠躁的推荐 | 538prom精品视频线放| 亚洲色图制服丝袜| 国产成人免费xxxxxxxx| 欧美一级理论片| 午夜一区二区三区在线观看| 欧美疯狂做受xxxx富婆| 亚洲私人影院在线观看| 国产超碰在线一区| 久久久五月婷婷| 蜜桃视频第一区免费观看| 欧美日韩在线精品一区二区三区激情| 日本一区二区三区四区| 国产一区二区美女诱惑| 欧美一区二区日韩| 男人操女人的视频在线观看欧美| 欧美日韩一级二级| 亚洲一区二区三区在线看| 色88888久久久久久影院野外| 欧美极品aⅴ影院| 国产大陆精品国产| 国产欧美日韩激情| 成人午夜碰碰视频| 国产精品久久久久国产精品日日| 国产乱子伦视频一区二区三区 | 亚洲一级片在线观看| 欧美性猛片aaaaaaa做受| 一区二区三区**美女毛片|