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

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

?? messagebox.js

?? ext js demo ext學習資料
?? JS
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Ext JS Library 1.1 RC 1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

/**
 * @class Ext.MessageBox
 * Utility class for generating different styles of message boxes.  The alias Ext.Msg can also be used.
 * Example usage:
 *<pre><code>
// Basic alert:
Ext.Msg.alert('Status', 'Changes saved successfully.');

// Prompt for user data:
Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
    if (btn == 'ok'){
        // process text value...
    }
});

// Show a dialog using config options:
Ext.Msg.show({
   title:'Save Changes?',
   msg: 'Your are closing a tab that has unsaved changes. Would you like to save your changes?',
   buttons: Ext.Msg.YESNOCANCEL,
   fn: processResult,
   animEl: 'elId'
});
</code></pre>
 * @singleton
 */
Ext.MessageBox = function(){
    var dlg, opt, mask, waitTimer;
    var bodyEl, msgEl, textboxEl, textareaEl, progressEl, pp;
    var buttons, activeTextEl, bwidth;

    // private
    var handleButton = function(button){
        dlg.hide();
        Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1);
    };

    // private
    var handleHide = function(){
        if(opt && opt.cls){
            dlg.el.removeClass(opt.cls);
        }
        if(waitTimer){
            Ext.TaskMgr.stop(waitTimer);
            waitTimer = null;
        }
    };

    // private
    var updateButtons = function(b){
        var width = 0;
        if(!b){
            buttons["ok"].hide();
            buttons["cancel"].hide();
            buttons["yes"].hide();
            buttons["no"].hide();
            dlg.footer.dom.style.display = 'none';
            return width;
        }
        dlg.footer.dom.style.display = '';
        for(var k in buttons){
            if(typeof buttons[k] != "function"){
                if(b[k]){
                    buttons[k].show();
                    buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]);
                    width += buttons[k].el.getWidth()+15;
                }else{
                    buttons[k].hide();
                }
            }
        }
        return width;
    };

    // private
    var handleEsc = function(d, k, e){
        if(opt && opt.closable !== false){
            dlg.hide();
        }
        if(e){
            e.stopEvent();
        }
    };

    return {
        /**
         * Returns a reference to the underlying {@link Ext.BasicDialog} element
         * @return {Ext.BasicDialog} The BasicDialog element
         */
        getDialog : function(){
           if(!dlg){
                dlg = new Ext.BasicDialog("x-msg-box", {
                    autoCreate : true,
                    shadow: true,
                    draggable: true,
                    resizable:false,
                    constraintoviewport:false,
                    fixedcenter:true,
                    collapsible : false,
                    shim:true,
                    modal: true,
                    width:400, height:100,
                    buttonAlign:"center",
                    closeClick : function(){
                        if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){
                            handleButton("no");
                        }else{
                            handleButton("cancel");
                        }
                    }
                });
                dlg.on("hide", handleHide);
                mask = dlg.mask;
                dlg.addKeyListener(27, handleEsc);
                buttons = {};
                var bt = this.buttonText;
                buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok"));
                buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes"));
                buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no"));
                buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel"));
                bodyEl = dlg.body.createChild({

                    html:'<span class="ext-mb-text"></span><br /><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea><div class="ext-mb-progress-wrap"><div class="ext-mb-progress"><div class="ext-mb-progress-bar">&#160;</div></div></div>'
                });
                msgEl = bodyEl.dom.firstChild;
                textboxEl = Ext.get(bodyEl.dom.childNodes[2]);
                textboxEl.enableDisplayMode();
                textboxEl.addKeyListener([10,13], function(){
                    if(dlg.isVisible() && opt && opt.buttons){
                        if(opt.buttons.ok){
                            handleButton("ok");
                        }else if(opt.buttons.yes){
                            handleButton("yes");
                        }
                    }
                });
                textareaEl = Ext.get(bodyEl.dom.childNodes[3]);
                textareaEl.enableDisplayMode();
                progressEl = Ext.get(bodyEl.dom.childNodes[4]);
                progressEl.enableDisplayMode();
                var pf = progressEl.dom.firstChild;
                pp = Ext.get(pf.firstChild);
                pp.setHeight(pf.offsetHeight);
            }
            return dlg;
        },

        /**
         * Updates the message box body text
         * @param {String} text (optional) Replaces the message box element's innerHTML with the specified string (defaults to
         * the XHTML-compliant non-breaking space character '&amp;#160;')
         * @return {Ext.MessageBox} This message box
         */
        updateText : function(text){
            if(!dlg.isVisible() && !opt.width){
                dlg.resizeTo(this.maxWidth, 100); // resize first so content is never clipped from previous shows
            }
            msgEl.innerHTML = text || '&#160;';
            var w = Math.max(Math.min(opt.width || msgEl.offsetWidth, this.maxWidth), 
                        Math.max(opt.minWidth || this.minWidth, bwidth));
            if(opt.prompt){
                activeTextEl.setWidth(w);
            }
            if(dlg.isVisible()){
                dlg.fixedcenter = false;
            }
            dlg.setContentSize(w, bodyEl.getHeight());
            if(dlg.isVisible()){
                dlg.fixedcenter = true;
            }
            return this;
        },

        /**
         * Updates a progress-style message box's text and progress bar.  Only relevant on message boxes
         * initiated via {@link Ext.MessageBox#progress} or by calling {@link Ext.MessageBox#show} with progress: true.
         * @param {Number} value Any number between 0 and 1 (e.g., .5)
         * @param {String} text (optional) If defined, the message box's body text is replaced with the specified string (defaults to undefined)
         * @return {Ext.MessageBox} This message box
         */
        updateProgress : function(value, text){
            if(text){
                this.updateText(text);
            }
            pp.setWidth(Math.floor(value*progressEl.dom.firstChild.offsetWidth));
            return this;
        },        

        /**
         * Returns true if the message box is currently displayed
         * @return {Boolean} True if the message box is visible, else false
         */
        isVisible : function(){
            return dlg && dlg.isVisible();  
        },

        /**
         * Hides the message box if it is displayed
         */
        hide : function(){
            if(this.isVisible()){
                dlg.hide();
            }  
        },

        /**
         * Displays a new message box, or reinitializes an existing message box, based on the config options
         * passed in. All functions (e.g. prompt, alert, etc) on MessageBox call this function internally.
         * The following config object properties are supported:
         * <pre>
Property    Type             Description
----------  ---------------  ----------------------------------------------------------------------
title       String           The title text
closable    Boolean          False to hide the top-right close box (defaults to true)
prompt      Boolean          True to prompt the user to enter single-line text (defaults to false)
multiline   Boolean          True to prompt the user to enter multi-line text (defaults to false)
progress    Boolean          True to display a progress bar (defaults to false)
value       String           The string value to set into the active textbox element if displayed
buttons     Object/Boolean   A button config object (e.g., Ext.MessageBox.OKCANCEL or {ok:'Foo',
                             cancel:'Bar'}), or false to not show any buttons (defaults to false)
msg         String           A string that will replace the existing message box body text (defaults
                             to the XHTML-compliant non-breaking space character &#160;)
cls         String           A custom CSS class to apply to the message box element
proxyDrag   Boolean          True to display a lightweight proxy while dragging (defaults to false)
modal       Boolean          False to allow user interaction with the page while the message box is
                             displayed (defaults to true)
</pre>
         *
         * Example usage:
         * <pre><code>
Ext.Msg.show({
   title: 'Address',
   msg: 'Please enter your address:',
   width: 300,
   buttons: Ext.MessageBox.OKCANCEL,
   multiline: true,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色噜噜| 久久99深爱久久99精品| 色综合久久综合网欧美综合网| 精品国精品国产| 国产米奇在线777精品观看| 久久精品在这里| 成人一级片在线观看| 美日韩黄色大片| 欧美日韩国产一级片| 国产亚洲午夜高清国产拍精品| 不卡一区二区中文字幕| av在线不卡观看免费观看| 欧美电影免费观看高清完整版在线 | 日韩一区二区精品| 亚洲图片激情小说| 国产乱码精品一品二品| 久久精品一区八戒影视| 色综合久久88色综合天天免费| 久久精品久久综合| 亚洲国产毛片aaaaa无费看| 337p日本欧洲亚洲大胆色噜噜| 97成人超碰视| 日本不卡高清视频| 欧美美女激情18p| 国产精品家庭影院| 色综合久久中文字幕综合网| 欧美精品一区二区三区四区| 日精品一区二区三区| 欧美日韩久久一区| 中文字幕一区二区三区乱码在线 | 成人精品视频.| 中文无字幕一区二区三区 | 欧美一级黄色片| 成人性生交大片免费看中文| 一区二区三区不卡视频| 亚洲精品在线网站| 欧美色综合网站| 成人午夜免费电影| 另类的小说在线视频另类成人小视频在线 | 欧美一区二区美女| 91亚洲大成网污www| 日本怡春院一区二区| 日韩理论片一区二区| 精品国产污污免费网站入口 | 免费欧美在线视频| 最近日韩中文字幕| 久久久亚洲精品一区二区三区| 欧美日韩亚洲综合一区二区三区| 国产激情视频一区二区在线观看| 日韩电影一区二区三区四区| 亚洲三级理论片| 国产精品色婷婷久久58| 精品欧美一区二区在线观看| 欧美写真视频网站| 一本到三区不卡视频| 国产不卡在线一区| 国产伦理精品不卡| 麻豆国产精品官网| 美国毛片一区二区三区| 偷窥少妇高潮呻吟av久久免费| 一区二区三区高清在线| 亚洲欧洲av在线| 国产精品乱子久久久久| 国产午夜亚洲精品午夜鲁丝片| 日韩精品影音先锋| 在线不卡免费av| 欧美日韩精品一区二区天天拍小说| 不卡区在线中文字幕| 国产99久久久国产精品| 国产99久久久精品| 国产精品一区二区在线观看网站| 精品写真视频在线观看| 天天影视色香欲综合网老头| 亚洲一区二区三区在线播放| 亚洲午夜精品网| 亚洲6080在线| 日本视频中文字幕一区二区三区| 香蕉久久夜色精品国产使用方法 | 中文字幕亚洲综合久久菠萝蜜| 欧美激情综合在线| 国产欧美日韩在线看| 国产精品少妇自拍| 中文字幕色av一区二区三区| 综合色中文字幕| 亚洲欧美二区三区| 亚洲一区二区3| 午夜国产不卡在线观看视频| 日本不卡123| 国产精品一区在线观看乱码| 国产成人精品三级麻豆| 91在线精品秘密一区二区| 色成年激情久久综合| 欧美日韩精品系列| 日韩三级视频在线看| 久久久蜜桃精品| 日韩一区在线看| 婷婷亚洲久悠悠色悠在线播放| 精品一区二区三区免费毛片爱| 国产精品中文字幕一区二区三区| 国产a视频精品免费观看| 色综合久久天天| 日韩亚洲欧美成人一区| 国产女人18水真多18精品一级做| 最新久久zyz资源站| 亚洲午夜日本在线观看| 久久精品国产精品亚洲红杏| 成人av资源站| 欧美无砖砖区免费| 久久久不卡影院| 亚洲观看高清完整版在线观看 | 男人的j进女人的j一区| 欧洲一区二区三区免费视频| 一区二区三区精品久久久| 亚洲成人动漫在线免费观看| 亚洲日本在线看| 成人免费视频国产在线观看| 91行情网站电视在线观看高清版| 国产精品久久久久7777按摩| 手机精品视频在线观看| 波多野结衣一区二区三区| 精品人在线二区三区| 亚洲图片欧美一区| 一本大道av一区二区在线播放| 欧美色图在线观看| 亚洲乱码中文字幕综合| 亚洲高清视频的网址| 男人操女人的视频在线观看欧美| 丰满亚洲少妇av| 制服丝袜中文字幕一区| 蜜臀av一级做a爰片久久| 欧美一区二区三区在| 国产成人亚洲综合a∨婷婷图片| 一区二区三区四区五区视频在线观看| 欧美三级日韩在线| 成人动漫av在线| 日本网站在线观看一区二区三区| 自拍偷拍国产精品| 国产精品麻豆久久久| 国产精品天天摸av网| 精品国产电影一区二区| 欧美精品一区二| 精品国产不卡一区二区三区| 国产一区二区电影| 综合久久久久综合| 欧美在线视频日韩| 美女视频黄a大片欧美| 久久亚洲捆绑美女| 色国产综合视频| 九九精品一区二区| 亚洲一二三区在线观看| 欧美日韩在线不卡| 国产乱国产乱300精品| 中文字幕国产一区| 欧美精品日韩一本| 亚洲精品一区二区三区精华液| 亚洲自拍偷拍综合| 色老综合老女人久久久| 国产欧美一区二区精品秋霞影院| 看电视剧不卡顿的网站| 欧美视频一区二区在线观看| 亚洲品质自拍视频| 色诱视频网站一区| 亚洲蜜臀av乱码久久精品| aaa亚洲精品一二三区| 国产精品色婷婷| 成人开心网精品视频| 中文字幕国产精品一区二区| 成人性生交大片免费看中文| 国产欧美精品一区二区色综合 | 日韩成人av影视| 欧美日韩国产精品自在自线| 一区二区三区加勒比av| 欧美主播一区二区三区| 亚洲mv在线观看| 欧美一区二区二区| 国产在线国偷精品免费看| 久久久久国产精品麻豆| 成人综合婷婷国产精品久久 | 欧美亚洲国产一区在线观看网站 | 国产真实乱对白精彩久久| 久久综合色8888| 国产成人啪免费观看软件| 国产精品久久久久永久免费观看| 96av麻豆蜜桃一区二区| 亚洲国产一区二区视频| 678五月天丁香亚洲综合网| 免费人成网站在线观看欧美高清| 久久亚洲捆绑美女| 99r国产精品| 视频一区在线播放| 精品国产成人在线影院| av在线不卡观看免费观看| 亚洲成人免费av| 精品国产凹凸成av人导航| www.欧美日韩| 日本免费新一区视频| 国产精品国产三级国产aⅴ原创 | 日韩三级视频在线观看| 成人高清伦理免费影院在线观看| 亚洲自拍偷拍图区|