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

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

?? feed.js

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
# -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-# ***** 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 RSS Parsing Engine## The Initial Developer of the Original Code is# The Mozilla Foundation.# Portions created by the Initial Developer are Copyright (C) 2004# 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 ***** */// error codes used to inform the consumer about attempts to download a feedconst kNewsBlogSuccess = 0;const kNewsBlogInvalidFeed = 1; // usually means there was an error trying to parse the feed...const kNewsBlogRequestFailure = 2; // generic networking failure when trying to download the feed.const kNewsBlogFeedIsBusy = 3;const kNewsBlogNoNewItems = 4; // there are no new articles for this feed// Cache for all of the feeds currently being downloaded, indexed by URL, so the load event listener// can access the Feed objects after it finishes downloading the feed.var FeedCache = {  mFeeds: new Array(),  putFeed: function (aFeed)  {    this.mFeeds[this.normalizeHost(aFeed.url)] = aFeed;  },  getFeed: function (aUrl)  {    return this.mFeeds[this.normalizeHost(aUrl)];  },  removeFeed: function (aUrl)  {    delete this.mFeeds[this.normalizeHost(aUrl)];  },  normalizeHost: function (aUrl)  {    var ioService = Components.classes["@mozilla.org/network/io-service;1"].                    getService(Components.interfaces.nsIIOService);    var normalizedUrl = ioService.newURI(aUrl, null, null);    normalizedUrl.host = normalizedUrl.host.toLowerCase();    return normalizedUrl.spec;  }};function Feed(aResource, aRSSServer) {  this.resource = aResource.QueryInterface(Components.interfaces.nsIRDFResource);  this.server = aRSSServer;}Feed.prototype = {  description: null,  author: null,  request: null,  server: null,  downloadCallback: null,  resource: null,  items: new Array(),  mFolder: null,  get folder()  {    if (!this.mFolder)    {      try       {        this.mFolder = this.server.rootMsgFolder.getChildNamed(this.name);      } catch (ex) {}    }    return this.mFolder;  },  set folder (aFolder)   {    this.mFolder = aFolder;  },  get name()  {    var name = this.title || this.description || this.url;    if (!name)      throw("couldn't compute feed name, as feed has no title, description, or URL.");    // Make sure the feed name doesn't have any line breaks, since we're going    // to use it as the name of the folder in the filesystem.  This may not    // be necessary, since Mozilla's mail code seems to handle other forbidden    // characters in filenames and can probably handle these as well.    name = name.replace(/[\n\r\t]+/g, " ");    // Make sure the feed doesn't end in a period to work around bug 117840.    name = name.replace(/\.+$/, "");    return name;  },  download: function(aParseItems, aCallback)   {     this.downloadCallback = aCallback; // may be null     // Whether or not to parse items when downloading and parsing the feed.    // Defaults to true, but setting to false is useful for obtaining    // just the title of the feed when the user subscribes to it.    this.parseItems = aParseItems == null ? true : aParseItems ? true : false;    // Before we do anything...make sure the url is an http url. This is just a sanity check    // so we don't try opening mailto urls, imap urls, etc. that the user may have tried to subscribe to     // as an rss feed..    var uri = Components.classes["@mozilla.org/network/standard-url;1"].                        createInstance(Components.interfaces.nsIURI);    uri.spec = this.url;    if (!(uri.schemeIs("http") || uri.schemeIs("https")))      return this.onParseError(this); // simulate an invalid feed error    // Before we try to download the feed, make sure we aren't already processing the feed    // by looking up the url in our feed cache    if (FeedCache.getFeed(this.url))    {      if (this.downloadCallback)        this.downloadCallback.downloaded(this, kNewsBlogFeedIsBusy);      return ; // don't do anything, the feed is already in use    }    this.request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]                   .createInstance(Components.interfaces.nsIXMLHttpRequest);    this.request.onprogress = this.onProgress; // must be set before calling .open    this.request.open("GET", this.url, true);    var lastModified = this.lastModified;    if (lastModified)      this.request.setRequestHeader("If-Modified-Since", lastModified);    this.request.overrideMimeType("text/xml");    this.request.onload = this.onDownloaded;    this.request.onerror = this.onDownloadError;    FeedCache.putFeed(this);    this.request.send(null);  },   onDownloaded: function(aEvent)   {    var request = aEvent.target;    var url = request.channel.originalURI.spec;    debug(url + " downloaded");    var feed = FeedCache.getFeed(url);    if (!feed)      throw("error after downloading " + url + ": couldn't retrieve feed from request");    // if the request has a Last-Modified header on it, then go ahead and remember    // that as a property on the feed so we can use it when making future requests.        var lastModifiedHeader = request.getResponseHeader('Last-Modified');    if (lastModifiedHeader)      this.lastModified = lastModifiedHeader;    feed.parse(); // parse will asynchronously call the download callback when it is done  },     onProgress: function(aEvent)   {    var request = aEvent.target;    var url = request.channel.originalURI.spec;    var feed = FeedCache.getFeed(url);    if (feed.downloadCallback)      feed.downloadCallback.onProgress(feed, aEvent.position, aEvent.totalSize);  },  onDownloadError: function(aEvent)   {    var request = aEvent.target;    var url = request.channel.originalURI.spec;    var feed = FeedCache.getFeed(url);    if (feed.downloadCallback)     {      // if the http status code is a 304, then the feed has not been modified since we last downloaded it.      var error = kNewsBlogRequestFailure;      try      {        if (request.status == 304)          error = kNewsBlogNoNewItems;      } catch (ex) {}      feed.downloadCallback.downloaded(feed, error);    }        FeedCache.removeFeed(url);  },  onParseError: function(aFeed)   {    if (aFeed && aFeed.downloadCallback)    {      if (aFeed.downloadCallback)        aFeed.downloadCallback.downloaded(aFeed, aFeed.request && aFeed.request.status == 304 ? kNewsBlogNoNewItems : kNewsBlogInvalidFeed);      FeedCache.removeFeed(aFeed.url);    }  },  get url()  {    var ds = getSubscriptionsDS(this.server);    var url = ds.GetTarget(this.resource, DC_IDENTIFIER, true);    if (url)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色免费电影| 日韩精品国产精品| 欧美一区二区三区性视频| 久草这里只有精品视频| 国产精品久久久久四虎| 3d动漫精品啪啪1区2区免费| 成熟亚洲日本毛茸茸凸凹| 亚洲第一综合色| 国产精品传媒视频| 日韩精品一区二区三区四区视频| 色综合久久久网| 韩国av一区二区三区| 亚洲国产精品久久久男人的天堂| 日韩欧美色综合网站| 26uuu成人网一区二区三区| 成人丝袜18视频在线观看| 亚洲国产精品久久艾草纯爱| 欧美激情资源网| 日韩欧美中文字幕制服| 欧美体内she精高潮| 国产91精品久久久久久久网曝门 | 国产一区中文字幕| 亚洲va天堂va国产va久| 亚洲三级在线看| 国产精品免费网站在线观看| 亚洲精品在线网站| 欧美精三区欧美精三区| 91久久免费观看| 91丨porny丨国产入口| 丁香婷婷综合激情五月色| 国产在线日韩欧美| 久久不见久久见免费视频1| 香蕉乱码成人久久天堂爱免费| 最新欧美精品一区二区三区| 中文字幕精品综合| 欧美国产日韩a欧美在线观看 | 欧美日韩一级黄| 在线中文字幕一区二区| 91香蕉视频污在线| 91美女蜜桃在线| 99vv1com这只有精品| 99久久综合狠狠综合久久| 国产精品一级二级三级| 国产黑丝在线一区二区三区| 激情文学综合网| 久久99精品久久久久婷婷| 麻豆免费精品视频| 国模大尺度一区二区三区| 国产在线不卡一卡二卡三卡四卡| 精品一二三四区| 国产精品自拍毛片| 成人丝袜高跟foot| 91浏览器打开| 欧美亚洲精品一区| 91精品国产黑色紧身裤美女| 欧美一区二区免费观在线| 欧美一级免费观看| 精品国精品国产| 国产欧美日韩综合| 亚洲日本中文字幕区| 一区二区三区波多野结衣在线观看| 一区二区欧美国产| 日韩不卡免费视频| 裸体一区二区三区| 国产成人在线视频网站| 高清不卡一二三区| 在线观看免费成人| 欧美一级二级三级蜜桃| 久久久久国产精品麻豆| 亚洲人成网站色在线观看| 亚洲高清在线精品| 国产在线看一区| 91麻豆视频网站| 6080国产精品一区二区| 久久综合国产精品| 亚洲美女偷拍久久| 日韩制服丝袜先锋影音| 国产一区不卡视频| 91精品1区2区| 精品1区2区在线观看| 日韩码欧中文字| 美女视频黄免费的久久| 国产91丝袜在线18| 欧美日韩精品一区二区三区蜜桃| 精品少妇一区二区三区日产乱码 | 成人av免费在线观看| 色综合久久久久综合99| 在线播放视频一区| 亚洲国产精品成人久久综合一区| 亚洲午夜精品17c| 国产精品一区二区在线观看网站| 色狠狠综合天天综合综合| 日韩欧美一卡二卡| 亚洲欧洲99久久| 久久精品72免费观看| 色视频一区二区| 久久久综合精品| 亚洲国产成人av| www.久久精品| 精品日韩在线观看| 亚洲制服丝袜在线| 国产成人免费视| 日韩欧美一级二级三级| 亚洲综合一区在线| 波多野结衣在线一区| 日韩限制级电影在线观看| 一区二区三区在线观看网站| 国产一区视频网站| 91精品国模一区二区三区| 亚洲免费成人av| 粉嫩av一区二区三区在线播放| 91精品国产免费| 亚洲国产毛片aaaaa无费看| 成人午夜激情视频| 久久这里只精品最新地址| 日韩福利电影在线| 在线观看欧美日本| 亚洲欧美日韩在线| 成人一区二区三区中文字幕| 亚洲在线观看免费| 不卡av电影在线播放| 久久久亚洲国产美女国产盗摄| 日本成人超碰在线观看| 欧美午夜理伦三级在线观看| 亚洲欧洲国产专区| 波多野结衣欧美| 欧美激情综合五月色丁香| 国产精品一区二区久久精品爱涩 | 亚洲国产精品视频| 色婷婷国产精品| 亚洲精品中文在线影院| 99久久精品免费观看| 国产精品卡一卡二| av亚洲精华国产精华精华| 中文字幕av一区二区三区高| 国内成人免费视频| 久久噜噜亚洲综合| 国产一区在线看| 久久久.com| 处破女av一区二区| 国产精品动漫网站| 91视视频在线观看入口直接观看www | 国产 欧美在线| 久久久国产精品不卡| 国产精品18久久久久久久久| 久久久青草青青国产亚洲免观| 精品一区二区日韩| 2020国产精品久久精品美国| 国产一区二区调教| 国产欧美综合在线观看第十页| 国产老妇另类xxxxx| 国产欧美日韩在线| 99精品久久只有精品| 一区二区在线观看免费| 欧美一a一片一级一片| 亚洲成人第一页| 欧美一区二区三区免费| 国产精品亚洲综合一区在线观看| 久久久91精品国产一区二区精品 | 国产传媒日韩欧美成人| 亚洲欧洲成人av每日更新| 欧美网站大全在线观看| 久久精品99国产精品| 国产精品欧美久久久久无广告| 成人中文字幕电影| 亚洲在线免费播放| 精品国产一区二区在线观看| 波波电影院一区二区三区| 亚洲一二三专区| 精品国产乱码久久久久久闺蜜| 丁香婷婷综合网| 午夜伦理一区二区| 国产日本一区二区| 欧美这里有精品| 国产乱码精品一区二区三区五月婷| 欧美精品18+| 久久午夜电影网| 国产成人在线免费观看| 自拍偷自拍亚洲精品播放| 欧美日韩国产大片| 欧美一级片在线观看| 国产91精品入口| 午夜精品久久久久久久久久| 久久久亚洲高清| 欧美日韩中文字幕一区| 国产成人自拍高清视频在线免费播放| 亚洲黄色小说网站| 精品精品国产高清一毛片一天堂| av色综合久久天堂av综合| 日韩电影在线免费看| 国产精品久久久久婷婷| 欧美一卡在线观看| 色综合久久久久| 国产在线精品不卡| 亚洲va欧美va国产va天堂影院| 久久精品男人天堂av| 91 com成人网| 色综合天天视频在线观看| 狠狠网亚洲精品| 视频一区中文字幕国产|