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

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

?? feed-viewer.js

?? 著重用css實現頁面顯示功能,實現簡單數據庫連接,是很好的入門教程
?? JS
字號:
/*
 * Ext JS Library 1.1.1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

var Viewer = function(){
    // a bunch of private variables accessible by member function
    var layout, statusPanel, south, preview, previewBody, feedPanel;
    var grid, ds, sm;
    var addFeed, currentItem, tpl;
    var suggested, feeds;
    var sfeeds, myfeeds;
    var seed = 0;
    
    // feed clicks bubble up to this universal handler
    var feedClicked = function(e){
        // find the "a" element that was clicked
        var a = e.getTarget('a');
        if(a){
            e.preventDefault();
            Viewer.loadFeed(a.href);
            Viewer.changeActiveFeed(a.id.substr(5));
        }  
    };
    
    return {
        init : function(){
            // initialize state manager, we will use cookies
            Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
            
            // initialize the add feed overlay and buttons
            addFeed = Ext.get('add-feed');
            var addBtn = Ext.get('add-btn');
            addBtn.on('click', this.validateFeed, this);
            var closeBtn = Ext.get('add-feed-close');
            closeBtn.on('click', addFeed.hide, addFeed, true);
            
            // create Elements for the feed and suggested lists
            feeds = Ext.get('feeds'); suggested = Ext.get('suggested');
            
            // delegate clicks on the lists
            feeds.on('click', feedClicked);
            suggested.on('click', feedClicked);
            
            //create feed template
            tpl = new Ext.DomHelper.Template('<a id="feed-{id}" href="{url}"><span class="body">{name}<br><span class="desc">{desc}</span></span></a>');
            
            // collection of feeds added by the user
            myfeeds = {};
            
            // some default feeds
            sfeeds = {
                'ajaxian':{id:'ajaxian', name: 'Ajaxian', desc: 'Cleaning up the web with Ajax.', url:'http://feeds.feedburner.com/ajaxian'},
                'yui':{id:'yui', name: 'YUI Blog', desc: 'News and Articles about Designing and Developing with Yahoo! Libraries.', url:'http://feeds.yuiblog.com/YahooUserInterfaceBlog'},
                'sports':{id:'sports', name: 'Yahoo! Sports', desc: 'Latest news and information for the world of sports.', url:'http://sports.yahoo.com/top/rss.xml'}
            };
            
            // go through the suggested feeds and add them to the list
            for(var id in sfeeds) {
            	var f = sfeeds[id];
            	tpl.append(suggested.dom, f);
            }
            
            // create the main layout
            layout = new Ext.BorderLayout(document.body, {
                north: {
                    split:false,
                    initialSize: 25,
                    titlebar: false
                },
                west: {
                    split:true,
                    initialSize: 200,
                    minSize: 175,
                    maxSize: 400,
                    titlebar: true,
                    collapsible: true,
                    animate: true,
                    autoScroll:false,
                    useShim:true,
                    cmargins: {top:0,bottom:2,right:2,left:2}
                },
                east: {
                    split:true,
                    initialSize: 200,
                    minSize: 175,
                    maxSize: 400,
                    titlebar: true,
                    collapsible: true,
                    animate: true,
                    autoScroll:false,
                    useShim:true,
                    collapsed:true,
                    cmargins: {top:0,bottom:2,right:2,left:2}
                },
                south: {
                    split:false,
                    initialSize: 22,
                    titlebar: false,
                    collapsible: false,
                    animate: false
                },
                center: {
                    titlebar: false,
                    autoScroll:false,
                    tabPosition: 'top',
                    closeOnTab: true,
                    alwaysShowTabs: true,
                    resizeTabs: true
                }
            });
            // tell the layout not to perform layouts until we're done adding everything
            layout.beginUpdate();
            layout.add('north', new Ext.ContentPanel('header'));
            
            // initialize the statusbar
            statusPanel = new Ext.ContentPanel('status');
            south = layout.getRegion('south');
            south.add(statusPanel);
            
            // create the add feed toolbar
            var feedtb = new Ext.Toolbar('myfeeds-tb');
            // They can also be referenced by id in or components
            feedtb.add( {
              id:'add-feed-btn',
              icon: 'images/add-feed.gif', // icons can also be specified inline
              cls: 'x-btn-text-icon',
              text: 'Add feed',
              handler: this.showAddFeed.createDelegate(this),
              tooltip: '<b>Add Feed</b><br/>Button with tooltip'
          });            
            
            layout.add('west', new Ext.ContentPanel('feeds', {title: 'My Feeds', fitToFrame:true, toolbar: feedtb, resizeEl:'myfeeds-body'}));
            layout.add('east', new Ext.ContentPanel('suggested', {title: 'Suggested Feeds', fitToFrame:true}));
            
            // the inner layout houses the grid panel and the preview panel
            var innerLayout = new Ext.BorderLayout('main', {
                south: {
                    split:true,
                    initialSize: 250,
                    minSize: 100,
                    maxSize: 400,
                    autoScroll:false,
                    collapsible:true,
                    titlebar: true,
                    animate: true,
                    cmargins: {top:2,bottom:0,right:0,left:0}
                },
                center: {
                    autoScroll:false,
                    titlebar:false
                }
            });
            // add the nested layout
            feedPanel = new Ext.NestedLayoutPanel(innerLayout, 'View Feed');
            layout.add('center', feedPanel);
            
            innerLayout.beginUpdate();
            
            var lv = innerLayout.add('center', new Ext.ContentPanel('feed-grid', {title: 'Feed Articles', fitToFrame:true}));
            this.createView(lv.getEl());
            
            // create the preview panel and toolbar
            previewBody = Ext.get('preview-body');
            var tb = new Ext.Toolbar('preview-tb');
            
            tb.addButton({text: 'View in New Tab',icon: 'images/new_tab.gif',cls: 'x-btn-text-icon', handler: this.showInTab.createDelegate(this)});
            tb.addSeparator();
            tb.addButton({text: 'View in New Window',icon: 'images/new_window.gif',cls: 'x-btn-text-icon', handler: this.showInWindow.createDelegate(this)});
            
            preview = new Ext.ContentPanel('preview', {title: "Preview", fitToFrame:true, toolbar: tb, resizeEl:'preview-body'});
            innerLayout.add('south', preview);
            
            // restore innerLayout state
            innerLayout.restoreState();
            innerLayout.endUpdate(true);
            
            // restore any state information
            layout.restoreState();
            layout.endUpdate();
            
            this.loadFeed('http://feeds.feedburner.com/ajaxian');
            this.changeActiveFeed('ajaxian');
        },
        
        createView : function(el){
            function reformatDate(feedDate){
                var d = new Date(Date.parse(feedDate));
                return d ? d.dateFormat('D M j, Y, g:i a') : '';
            }
            
            var reader = new Ext.data.XmlReader({record: 'item'},
                ['title', {name:'pubDate', type:'date'}, 'link', 'description']
            );

            ds = new Ext.data.Store({
                proxy: new Ext.data.HttpProxy({
                    url: 'feed-proxy.php'
                }),
                reader : reader
            });
            
            ds.on('load', this.onLoad, this);
            
            var tpl = new Ext.Template(
                  '<div class="feed-item">' +
                  '<div class="item-title">{title}</div>' +
                  '<div class="item-date">{date}</div>' +
                  '{desc}</div>'
            );
            
            var view = new Ext.View(el, tpl, {store: ds, singleSelect:true, selectedClass:'selected-article'});
            view.prepareData = function(data){
                return {
                    title: data.title,
                    date: reformatDate(data.pubDate),
                    desc: data.description.replace(/<\/?[^>]+>/gi, '').ellipse(350)
                
                };
            };
            view.on('click', this.showPost, this);
            view.on('dblclick', this.showFullPost, this);
        },
        
        onLoad : function(){
            if(ds.getCount() < 1){
        		preview.setContent('');
        	}
            statusPanel.getEl().addClass('done');
            statusPanel.setContent('Done.');
        },
        
        loadFeed : function(feed){
        	statusPanel.setContent('Loading feed ' + feed + '...');
        	statusPanel.getEl().removeClass('done');
            //ds.load({'feed': feed});
            //cgsktca
            ds.load({params:{'feed': feed}});
        },
        
        showPost : function(view, dataIndex){            
            var node = ds.getAt(dataIndex);
            var title = node.data.title;
            var link = node.data.link;
            var desc = node.data.description;
              		
    		    currentItem = {
    		        index: dataIndex, link: link
    		    };
    		    preview.setTitle(title.ellipse(80));
    		    previewBody.update(desc);
        },
        
        showFullPost : function(view, rowIndex){
          var node = ds.getAt(rowIndex);
    		  var link = node.data.link;
    		  var title = node.data.title;
    		  
    		  if(!title){
    		      title = 'View Post';
    		  }
    		  var iframe = Ext.DomHelper.append(document.body, 
    		              {tag: 'iframe', frameBorder: 0, src: link});
    		  var panel = new Ext.ContentPanel(iframe, 
    		              {title: title, fitToFrame:true, closable:true});
    		  layout.add('center', panel);     	
        },
        
        showInTab : function(){
            if(currentItem){
                this.showFullPost(grid, currentItem.index);
            }
        },
        
        showInWindow : function(){
            if(currentItem){
                window.open(currentItem.link, 'win');
            }
        },
        
        changeActiveFeed : function(feedId){
            suggested.select('a').removeClass('selected');
            feeds.select('a').removeClass('selected');
            Ext.fly('feed-'+feedId).addClass('selected');
            var feed = sfeeds[feedId] || myfeeds[feedId];
            feedPanel.setTitle('View Feed (' + feed.name.ellipse(16) + ')');
        },
        
        showAddFeed : function(btn){
            Ext.get('feed-url').dom.value = '';
            Ext.get('add-title').radioClass('active-msg');
            var el = Ext.get('myfeeds-tb');

            addFeed.alignTo('myfeeds-tb', 'tl', [3,3]);
            addFeed.show();
        },        
        
        validateFeed : function(){
            var url = Ext.get('feed-url').dom.value;
            Ext.get('loading-feed').radioClass('active-msg');
            var success = function(o){
                try{
                    var xml = o.responseXML;
                    var channel = xml.getElementsByTagName('channel')[0];
                    var titleEl = channel.getElementsByTagName('title')[0];
                    var descEl = channel.getElementsByTagName('description')[0];
                    var name = titleEl.firstChild.nodeValue;
                    var desc = (descEl.firstChild ? descEl.firstChild.nodeValue : '');
                    var id = ++seed;
                    myfeeds[id] = {id:id, name:name, desc:desc, url:url};
                    tpl.append('myfeeds-body', myfeeds[id]);
                    
                    addFeed.hide();  
                   
                      
                    ds.loadData(xml); 
                    this.changeActiveFeed(id);
                                       
                }catch(e){
                    Ext.get('invalid-feed').radioClass('active-msg');                   
                }                     
            }.createDelegate(this);
            var failure = function(o){
                Ext.get('invalid-feed').radioClass('active-msg');
            };
            Ext.lib.Ajax.request('POST', 'feed-proxy.php', {success:success, failure:failure}, 'feed='+encodeURIComponent(url));
        }
    };
}();
Ext.onReady(Viewer.init, Viewer);

String.prototype.ellipse = function(maxLength){
    if(this.length > maxLength){
        return this.substr(0, maxLength-3) + '...';
    }
    return this;
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲动漫另类| 国产精品久久久久久久岛一牛影视| 欧美va亚洲va国产综合| 国产精品高清亚洲| 美女一区二区在线观看| 一本久道久久综合中文字幕 | 欧美性欧美巨大黑白大战| 欧美成人精精品一区二区频| 一区二区三区视频在线观看| 国产美女在线精品| 6080国产精品一区二区| 亚洲人成亚洲人成在线观看图片| 国模冰冰炮一区二区| 欧美日韩黄色影视| 亚洲资源中文字幕| 91影院在线观看| 国产欧美日韩在线看| 久久91精品国产91久久小草| 91精品视频网| 石原莉奈一区二区三区在线观看| 一本到三区不卡视频| 国产精品毛片无遮挡高清| 国产成人鲁色资源国产91色综| 日韩美女主播在线视频一区二区三区| 亚洲午夜av在线| 色一情一伦一子一伦一区| 亚洲日本在线视频观看| 色综合色狠狠综合色| 亚洲欧美另类久久久精品2019| 成人视屏免费看| 亚洲同性同志一二三专区| 成人性生交大片免费看中文| 亚洲国产精品黑人久久久| 成人午夜电影久久影院| 国产精品视频你懂的| 91蝌蚪porny九色| 亚洲卡通动漫在线| 99在线视频精品| 亚洲另类春色国产| 欧美精品丝袜中出| 六月丁香婷婷色狠狠久久| 精品久久久影院| 成人av资源站| 亚洲另类色综合网站| 欧美三日本三级三级在线播放| 亚洲视频1区2区| 欧美视频一区二区三区四区| 天堂av在线一区| 在线综合+亚洲+欧美中文字幕| 天天亚洲美女在线视频| 久久久亚洲午夜电影| 91亚洲资源网| 午夜成人在线视频| 久久综合九色欧美综合狠狠| 国产iv一区二区三区| 亚洲日本一区二区三区| 欧美一区二区在线免费播放| 视频一区欧美精品| 国产日产亚洲精品系列| 91网站在线观看视频| 偷窥国产亚洲免费视频 | 欧美午夜免费电影| 免费一级片91| 中文字幕不卡在线播放| 色综合婷婷久久| 久久国产人妖系列| 国产精品不卡视频| 日韩欧美一区二区久久婷婷| 成人免费的视频| 视频在线观看一区二区三区| 国产欧美一区二区精品忘忧草| 在线亚洲一区二区| 国内精品伊人久久久久影院对白| 国产精品美女久久久久久 | 亚洲一区二区三区不卡国产欧美| 91麻豆精品国产91| www.日韩av| 日本成人在线看| 一区二区中文视频| 精品999久久久| 在线观看亚洲精品| 粉嫩在线一区二区三区视频| 石原莉奈在线亚洲二区| 亚洲欧洲精品一区二区精品久久久| 69久久99精品久久久久婷婷| 91天堂素人约啪| 国产不卡免费视频| 美腿丝袜一区二区三区| 亚洲精品欧美专区| 国产欧美日韩在线视频| 2017欧美狠狠色| 欧美精品日韩一本| 色欧美88888久久久久久影院| 国产精品18久久久久久久网站| 香蕉成人伊视频在线观看| 亚洲欧美一区二区三区孕妇| 国产精品天美传媒沈樵| 日韩精品一区二区三区中文精品| 91国产福利在线| 色噜噜夜夜夜综合网| www.欧美.com| 成人av在线一区二区| 国产成人免费xxxxxxxx| 国产麻豆精品theporn| 另类人妖一区二区av| 蜜臀久久久99精品久久久久久| 尤物在线观看一区| 一区二区三区在线视频免费观看| 国产精品国产三级国产普通话三级| 久久久久成人黄色影片| 久久精品欧美日韩精品| 国产亚洲精品精华液| 久久久亚洲午夜电影| 欧美国产一区二区在线观看| 国产欧美日韩不卡免费| 日本一区二区在线不卡| 国产精品久久久久影院老司| 日本一区二区免费在线观看视频| 国产欧美一区在线| 国产精品久久99| 亚洲欧美日韩一区二区三区在线观看| 中文字幕制服丝袜一区二区三区| 国产精品国产三级国产普通话99 | 中文在线资源观看网站视频免费不卡| 亚洲精品一线二线三线无人区| 日韩欧美激情四射| 久久一夜天堂av一区二区三区| 精品国偷自产国产一区| 久久久影视传媒| 亚洲欧美日韩国产手机在线| 一区二区高清在线| 亚洲高清免费视频| 奇米色777欧美一区二区| 精品在线播放免费| 成人a免费在线看| 欧美日韩在线播| 精品国产乱码久久久久久影片| 国产三级精品在线| 亚洲美腿欧美偷拍| 三级一区在线视频先锋| 国内外成人在线| 色999日韩国产欧美一区二区| 欧美日韩精品一二三区| 欧美xxxxxxxxx| 亚洲欧美激情在线| 免费观看成人鲁鲁鲁鲁鲁视频| 国产福利精品导航| 一本一道波多野结衣一区二区| 欧美一卡二卡三卡四卡| 国产精品电影一区二区| 亚洲成人激情自拍| 丁香天五香天堂综合| 欧美色综合久久| 精品成人佐山爱一区二区| 成人免费一区二区三区视频| 午夜亚洲福利老司机| 国产乱妇无码大片在线观看| 欧美在线免费播放| 337p日本欧洲亚洲大胆色噜噜| 日韩毛片视频在线看| 秋霞电影一区二区| 99精品热视频| 日韩欧美自拍偷拍| 一区二区三区在线视频免费 | 久久综合中文字幕| 一区二区三区在线高清| 国产精品18久久久久| 91麻豆精品国产91久久久| 国产精品二区一区二区aⅴ污介绍| 奇米精品一区二区三区在线观看| 99国产麻豆精品| 久久伊99综合婷婷久久伊| 亚洲国产成人91porn| 9i在线看片成人免费| 精品电影一区二区三区| 日韩影视精彩在线| 欧美自拍偷拍一区| 国产精品乱人伦| 国产精品自拍av| 精品国产一区二区三区忘忧草| 亚洲综合免费观看高清在线观看| caoporm超碰国产精品| 日韩欧美aaaaaa| 日韩影院精彩在线| 欧美日韩免费不卡视频一区二区三区| 国产精品美女久久久久久久久 | 成人综合在线视频| 精品免费一区二区三区| 日本不卡一区二区三区| 欧美性猛片xxxx免费看久爱| 亚洲女人的天堂| 91丨porny丨国产入口| 国产欧美日韩精品在线| 床上的激情91.| 国产精品进线69影院| 99久久久精品免费观看国产蜜| 中文字幕精品一区| 成人高清免费在线播放| 中文字幕视频一区| 91在线视频网址|