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

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

?? feed-subscriptions.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 3 頁
字號:
    ds.Change(resource, FZ_DESTFOLDER, currentParentResource, newParentResource);    // we need to update the feed url attributes on the databases for each folder    updateFolderFeedUrl(currentParentResource.QueryInterface(Components.interfaces.nsIMsgFolder),                         currentItem.url, true); // remove our feed url property from the current folder    updateFolderFeedUrl(newParentResource.QueryInterface(Components.interfaces.nsIMsgFolder),                         currentItem.url, false);       // add our feed url property to the new folder    // Finally, update our view layer    this.mView.removeItemAtIndex(aOldFeedIndex, 1);    if (aNewParentIndex > aOldFeedIndex)      aNewParentIndex--;        currentItem.level = newParentItem.level + 1;    newParentItem.children.push(currentItem);    var indexOfNewItem = aNewParentIndex + newParentItem.children.length;;    if (!newParentItem.open) // force open the container      this.mView.toggleOpenState(aNewParentIndex);    else    {      this.mFeedContainers.splice(indexOfNewItem, 0, currentItem);      this.mView.mRowCount++;      this.mTree.treeBoxObject.rowCountChanged(indexOfNewItem, 1);    }    gFeedSubscriptionsWindow.mTree.view.selection.select(indexOfNewItem)  },  beginDrag: function (aEvent)  {    // get the selected feed article (if there is one)    var seln = this.mView.selection;    if (seln.count != 1)       return;    // only initiate a drag if the item is a feed (i.e. ignore folders/containers)    var item = this.mView.getItemAtIndex(seln.currentIndex);    if (!item || item.container)      return;    var transfer = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);     var transArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);    var dragData = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);    transfer.addDataFlavor("text/x-moz-feed-index"); // i made this flavor type up    dragData.data = seln.currentIndex.toString();    transfer.setTransferData ( "text/x-moz-feed-index", dragData, seln.currentIndex.toString() * 2 );  // doublebyte byte data    transArray.AppendElement(transfer.QueryInterface(Components.interfaces.nsISupports));    var dragService = Components.classes["@mozilla.org/widget/dragservice;1"].getService().QueryInterface(nsIDragService);    dragService.invokeDragSession ( aEvent.target, transArray, null, nsIDragService.DRAGDROP_ACTION_MOVE);  },  mFeedDownloadCallback:  {    downloaded: function(feed, aErrorCode)    {      // feed is null if our attempt to parse the feed failed      if (aErrorCode == kNewsBlogSuccess)      {        updateStatusItem('progressMeter', 100);        // if we get here...we should always have a folder by now...either        // in feed.folder or FeedItems created the folder for us....        updateFolderFeedUrl(feed.folder, feed.url, false);        // add feed just adds the feed we have validated and downloaded to our datasource        // it also flushes the subscription datasource        addFeed(feed.url, feed.name, feed.folder);         // now add the feed to our view        refreshSubscriptionView();      }       else if (aErrorCode == kNewsBlogInvalidFeed) //  the feed was bad...        window.alert(gFeedSubscriptionsWindow.mBundle.getFormattedString('newsblog-invalidFeed', [feed.url]));      else if (aErrorCode == kNewsBlogRequestFailure)         window.alert(gFeedSubscriptionsWindow.mBundle.getFormattedString('newsblog-networkError', [feed.url]));      // re-enable the add button now that we are done subscribing      document.getElementById('addFeed').removeAttribute('disabled');      // our operation is done...clear out the status text and progressmeter      setTimeout(clearStatusInfo, 1000);    },    // this gets called after the RSS parser finishes storing a feed item to disk    // aCurrentFeedItems is an integer corresponding to how many feed items have been downloaded so far    // aMaxFeedItems is an integer corresponding to the total number of feed items to download    onFeedItemStored: function (feed, aCurrentFeedItems, aMaxFeedItems)    {       updateStatusItem('statusText', gFeedSubscriptionsWindow.mBundle.getFormattedString("subscribe-fetchingFeedItems",                                                                                          [aCurrentFeedItems, aMaxFeedItems]));      this.onProgress(feed, aCurrentFeedItems, aMaxFeedItems);    },    onProgress: function(feed, aProgress, aProgressMax)    {      updateStatusItem('progressMeter', (aProgress * 100) / aProgressMax);    },  },  exportOPML: function()  {    if (this.mRSSServer.rootFolder.hasSubFolders)    {      var opmlDoc = document.implementation.createDocument("","opml",null);      var opmlRoot = opmlDoc.documentElement;      opmlRoot.setAttribute("version","1.0");      this.generatePPSpace(opmlRoot,"  ");      // Make the <head> element      var head = opmlDoc.createElement("head");      this.generatePPSpace(head, "    ");      var title = opmlDoc.createElement("title");      title.appendChild(opmlDoc.createTextNode(this.mBundle.getString("subscribe-OPMLExportFileTitle")));      head.appendChild(title);      this.generatePPSpace(head, "    ");      var dt = opmlDoc.createElement("dateCreated");      dt.appendChild(opmlDoc.createTextNode((new Date()).toGMTString()));      head.appendChild(dt);      this.generatePPSpace(head, "  ");      opmlRoot.appendChild(head);      this.generatePPSpace(opmlRoot, "  ");      //add <outline>s to the <body>      var body = opmlDoc.createElement("body");      this.generateOutline(this.mRSSServer.rootFolder, body, 4);      this.generatePPSpace(body, "  ");      opmlRoot.appendChild(body);      this.generatePPSpace(opmlRoot, "");      var serial=new XMLSerializer();      var rv = pickSaveAs(this.mBundle.getString("subscribe-OPMLExportTitle"),'$all',                          this.mBundle.getString("subscribe-OPMLExportFileName"));      if(rv.reason == PICK_CANCEL)        return;      else if(rv)      {        //debug("opml:\n"+serial.serializeToString(opmlDoc)+"\n");        var file = new LocalFile(rv.file, MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE);        serial.serializeToStream(opmlDoc,file.outputStream,'utf-8');        file.close();      }    }  },  generatePPSpace: function(aNode, indentString)  {    aNode.appendChild(aNode.ownerDocument.createTextNode("\n"));    aNode.appendChild(aNode.ownerDocument.createTextNode(indentString));  },    generateOutline: function(baseFolder, parent, indentLevel)  {    var folderEnumerator = baseFolder.GetSubFolders();    var done = false;    // pretty printing    var indentString = "";    for(i = 0; i < indentLevel; i++)      indentString = indentString + " ";     while (!done)     {      var folder = folderEnumerator.currentItem().QueryInterface(Components.interfaces.nsIMsgFolder);      if (folder && !folder.getFlag(MSG_FOLDER_FLAG_TRASH))       {        var outline;        if(folder.hasSubFolders)        {          // Make a mostly empty outline element          outline = parent.ownerDocument.createElement("outline");          outline.setAttribute("text",folder.prettiestName);          this.generateOutline(folder, outline, indentLevel+2); // recurse          this.generatePPSpace(parent, indentString);          this.generatePPSpace(outline, indentString);          parent.appendChild(outline);        }        else        {          // Add outline elements with xmlUrls          var feeds = this.getFeedsInFolder(folder);          for (feed in feeds)          {            outline = this.opmlFeedToOutline(feeds[feed],parent.ownerDocument);            this.generatePPSpace(parent, indentString);            parent.appendChild(outline);          }        }      }            try {        folderEnumerator.next();      }       catch (ex)      {        done = true;      }    }  },    opmlFeedToOutline: function(aFeed,aDoc)  {    var outRv = aDoc.createElement("outline");    outRv.setAttribute("title",aFeed.title);    outRv.setAttribute("text",aFeed.title);    outRv.setAttribute("type","rss");    outRv.setAttribute("version","RSS");    outRv.setAttribute("xmlUrl",aFeed.url);    outRv.setAttribute("htmlUrl",aFeed.link);    return outRv;  },  importOPML: function()  {    var rv = pickOpen(this.mBundle.getString("subscribe-OPMLImportTitle"), '$xml $opml $all');    if(rv.reason == PICK_CANCEL)      return;        var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(IPS);    var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);    var opmlDom = null;    // read in file as raw bytes, so Expat can do the decoding for us    try{      stream.init(rv.file, MODE_RDONLY, PERM_IROTH, 0);      var parser = new DOMParser();      opmlDom = parser.parseFromStream(stream, null, stream.available(), 'application/xml');    }catch(e){      return promptService.alert(window, null, this.mBundle.getString("subscribe-errorOpeningFile"));    }finally{      stream.close();    }    // return if the user didn't give us an OPML file    if(!opmlDom || !(opmlDom.documentElement.tagName == "opml"))      return promptService.alert(window, null, this.mBundle.getFormattedString("subscribe-errorInvalidOPMLFile", [rv.file.leafName]));    var outlines = opmlDom.getElementsByTagName("body")[0].getElementsByTagName("outline");    var feedsAdded = false;     for (var index = 0; index < outlines.length; index++)    {      var outline = outlines[index];           // XXX only dealing with flat OPML files for now.       // We still need to add support for grouped files.            if(outline.hasAttribute("xmlUrl") || outline.hasAttribute("url"))      {        var userAddedFeed = false;         var newFeedUrl = outline.getAttribute("xmlUrl") || outline.getAttribute("url")        var defaultQuickMode = this.mRSSServer.getBoolAttribute('quickMode');        var feedProperties = { feedName: this.findOutlineTitle(outline),                               feedLocation: newFeedUrl,                                serverURI: this.mRSSServer.serverURI,                                serverPrettyName: this.mRSSServer.prettyName,                                 folderURI: "",                                quickMode: this.mRSSServer.getBoolAttribute('quickMode')};        debug("importing feed: "+ feedProperties.feedName);               // Silently skip feeds that are already subscribed to.         if (!feedAlreadyExists(feedProperties.feedLocation, this.mRSSServer))        {          var feed = this.storeFeed(feedProperties);                 if(feed)          {            feed.title = feedProperties.feedName;            if(outline.hasAttribute("htmlUrl"))              feed.link = outline.getAttribute("htmlUrl");            feed.createFolder();            updateFolderFeedUrl(feed.folder, feed.url, false);                        // add feed adds the feed we have validated and downloaded to our datasource            // it also flushes the subscription datasource            addFeed(feed.url, feed.name, feed.folder);             feedsAdded = true;          }        }      }    }    if (!outlines.length || !feedsAdded)      return promptService.alert(window, null, this.mBundle.getFormattedString("subscribe-errorInvalidOPMLFile", [rv.file.leafName]));    //add the new feeds to our view    refreshSubscriptionView();  },    findOutlineTitle: function(anOutline)  {    var outlineTitle;    if (anOutline.hasAttribute("text"))      outlineTitle = anOutline.getAttribute("text");    else if (anOutline.hasAttribute("title"))      outlineTitle = anOutline.getAttribute("title");    else if (anOutline.hasAttribute("xmlUrl"))      outlineTitle = anOutline.getAttribute("xmlUrl");    return outlineTitle;  },};// opens the feed properties dialogfunction openFeedEditor(aFeedProperties){  window.openDialog('chrome://messenger-newsblog/content/feed-properties.xul', 'feedproperties', 'modal,titlebar,chrome,center', aFeedProperties);  return aFeedProperties;} function refreshSubscriptionView(){  gFeedSubscriptionsWindow.loadSubscriptions();  gFeedSubscriptionsWindow.mTree.treeBoxObject.invalidate();  gFeedSubscriptionsWindow.mTree.treeBoxObject.view = gFeedSubscriptionsWindow.mView;  if (gFeedSubscriptionsWindow.mView.rowCount > 0)     gFeedSubscriptionsWindow.mTree.view.selection.select(0);}function processDrop(){  gFeedSubscriptionsWindow.addFeed(gFeedSubscriptionsWindow.mView.mDropUrl, gFeedSubscriptionsWindow.mView.mDropFolderUrl);}// status helper routinesfunction updateStatusItem(aID, aValue){  var el = document.getElementById(aID);  if (el.getAttribute('collapsed'))    el.removeAttribute('collapsed');  el.value = aValue;}function clearStatusInfo(){  document.getElementById('statusText').value = "";  document.getElementById('progressMeter').collapsed = true;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区国产视频| 综合久久给合久久狠狠狠97色| 国产乱码精品1区2区3区| 亚洲视频在线一区观看| 日韩视频免费观看高清完整版| 白白色 亚洲乱淫| 久久国产三级精品| 亚洲一区二区三区四区在线观看 | 日韩成人精品在线| 国产精品免费看片| 亚洲精品在线三区| 欧美日韩一区二区三区高清| 丁香啪啪综合成人亚洲小说| 亚洲国产精品久久一线不卡| 国产精品女主播在线观看| 日韩一区二区电影| 欧美综合一区二区三区| 成人中文字幕在线| 极品美女销魂一区二区三区免费| 亚洲综合在线第一页| 国产精品国产三级国产| 久久久精品一品道一区| 欧美蜜桃一区二区三区| 在线亚洲人成电影网站色www| 高清在线成人网| 韩国av一区二区三区在线观看| 午夜视频一区二区三区| 一区二区三区精品在线| 椎名由奈av一区二区三区| 国产色91在线| 国产午夜亚洲精品羞羞网站| 日韩高清一级片| 亚洲成人三级小说| 亚洲国产综合视频在线观看| 亚洲激情在线激情| 亚洲精品国产一区二区三区四区在线| 国产婷婷精品av在线| 日本一区二区三区国色天香| 久久久精品影视| 久久精品视频免费观看| 国产亚洲污的网站| 久久久噜噜噜久久中文字幕色伊伊| 日韩一区二区影院| 精品国偷自产国产一区| 精品sm在线观看| 日本一区二区三区四区| 国产精品高潮呻吟| 亚洲女与黑人做爰| 一区二区三区91| 午夜精品视频一区| 另类中文字幕网| 韩国女主播成人在线观看| 国产九色精品成人porny| 国产iv一区二区三区| 99视频精品全部免费在线| 91视频在线观看免费| 欧美午夜不卡视频| 欧美一区二区播放| 国产女人18毛片水真多成人如厕 | 99久免费精品视频在线观看| 91亚洲精华国产精华精华液| 欧美在线一区二区| 日韩色在线观看| 久久精品一区二区三区av| 中文字幕一区不卡| 亚洲第一主播视频| 激情文学综合插| 成人h精品动漫一区二区三区| 色综合久久88色综合天天免费| 欧美视频一区在线观看| 欧美成人一区二区| 国产精品久久免费看| 亚洲不卡一区二区三区| 久久精工是国产品牌吗| 成人99免费视频| 欧美妇女性影城| 久久久久久久久99精品| 成人午夜av影视| 欧美日韩国产高清一区| 欧美精品一区二区在线播放| 亚洲美女电影在线| 激情文学综合网| 日本韩国一区二区| 亚洲精品一区二区三区99| 1区2区3区欧美| 久久狠狠亚洲综合| 色嗨嗨av一区二区三区| 欧美电影免费观看高清完整版在线 | 国产精品国产三级国产普通话蜜臀| 亚洲精品乱码久久久久久黑人| 免费观看一级特黄欧美大片| a级高清视频欧美日韩| 在线播放国产精品二区一二区四区 | 免费在线欧美视频| 本田岬高潮一区二区三区| 欧美老肥妇做.爰bbww视频| 久久久久9999亚洲精品| 亚洲va欧美va人人爽| 成人看片黄a免费看在线| 6080国产精品一区二区| 国产精品免费人成网站| 美女网站色91| 欧美伊人久久大香线蕉综合69| 2023国产一二三区日本精品2022| 一区二区三区在线视频播放| 国产成人av自拍| 日韩欧美另类在线| 一区二区久久久久久| 国产成人免费视频| 日韩三级免费观看| 亚洲一区二区三区中文字幕 | 久久综合国产精品| 偷拍日韩校园综合在线| 99精品国产一区二区三区不卡| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产裸拍裸体视频在线观看乱了 | 99久久精品国产精品久久| 日韩欧美高清一区| 丝袜美腿亚洲综合| 欧美日韩中文字幕一区二区| 最新高清无码专区| 成人黄色免费短视频| 久久免费视频色| 精品一区二区三区影院在线午夜| 欧美日韩激情在线| 亚洲一级二级三级| 在线观看成人免费视频| 亚洲精品中文字幕乱码三区| 久久精品视频一区| 国产suv精品一区二区三区| 欧美精品一区二区在线播放| 麻豆专区一区二区三区四区五区| 欧美日本精品一区二区三区| 亚洲一区二区三区影院| 在线观看日韩高清av| 一区二区成人在线| 欧洲av一区二区嗯嗯嗯啊| 一区二区三区产品免费精品久久75| 色综合久久久久综合99| 亚洲男人都懂的| 欧美日韩综合不卡| 奇米777欧美一区二区| 日韩欧美视频在线| 国产自产高清不卡| 久久精品欧美一区二区三区不卡| 国产毛片精品一区| 国产婷婷一区二区| www.亚洲色图| 亚洲精品成人精品456| 欧美午夜精品免费| 男女男精品视频| ww亚洲ww在线观看国产| 国产成人午夜精品5599| 亚洲欧美在线aaa| 欧美主播一区二区三区| 视频在线观看一区二区三区| 日韩精品一区二区三区中文不卡| 韩国欧美国产一区| 国产精品不卡一区二区三区| 91在线小视频| 婷婷中文字幕综合| 精品美女在线播放| 成人高清免费观看| 亚洲一二三级电影| 精品福利视频一区二区三区| 波多野结衣一区二区三区| 一区二区三区四区不卡在线| 欧美日本一区二区三区四区| 国产一区二区三区四区五区美女| 国产精品嫩草影院com| 91福利资源站| 韩国精品主播一区二区在线观看 | 欧美激情一区二区三区| 色美美综合视频| 青青草原综合久久大伊人精品 | 一区二区成人在线| 精品美女一区二区| 91亚洲国产成人精品一区二三| 午夜在线成人av| 国产欧美久久久精品影院| 精品1区2区3区| 国产精品资源在线| 亚洲va国产天堂va久久en| 欧美精品一区二区三区四区| 91猫先生在线| 激情小说欧美图片| 亚洲一区二区成人在线观看| 亚洲精品一区二区三区精华液| 色国产精品一区在线观看| 国模无码大尺度一区二区三区| 一区二区三区中文在线观看| 精品免费视频一区二区| 欧洲一区二区三区在线| 国产乱人伦精品一区二区在线观看| 亚洲九九爱视频| 国产欧美精品区一区二区三区 | 久久一区二区三区四区| 欧美日韩国产影片| 欧美激情在线看| 欧美第一区第二区|