悟心

          成功不是將來才有的,而是從決定去做的那一刻起,持續(xù)累積而成。 上人生的旅途罷。前途很遠(yuǎn),也很暗。然而不要怕。不怕的人的面前才有路。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            93 隨筆 :: 1 文章 :: 103 評論 :: 0 Trackbacks

          CJ_StarHtmlEditor.js的代碼如下,使用方法,直接復(fù)制,保存成CJ_StarHtmlEditor.js就可以用了。

          /**
          * 作者:陳杰
          * QQ : 710782046
          * Email:ovenjackchain@gmail.com
          * Blog :http://hi.baidu.com/jackvoilet
          */
          var HTMLEditor = Ext.extend(Ext.form.HtmlEditor, {
          addImage : function() {
             var editor = this;
             var imgform = new Ext.FormPanel({
              region : 'center',
              labelWidth : 55,
              frame : true,
              bodyStyle : 'padding:5px 5px 0',
              autoScroll : true,
              border : false,
              fileUpload : true,
              items : [{
                 xtype : 'textfield',
                 fieldLabel : '選擇文件',
                 name : 'userfile',
                 id : 'userfile',
                 inputType : 'file',
                 allowBlank : false,
                 blankText : '文件不能為空',
                 height : 25,
                 anchor : '98%'
                }],
              buttons : [{
               text : '上傳',
               type : 'submit',
               handler : function() {
                var furl="";
                furl=imgform.form.findField('userfile').getValue();
                var type=furl.substring(furl.length-3).toLowerCase();
                var filename=furl.substring(furl.lastIndexOf("
          \\")+1);
                if (furl==""||furl==null) {return;}
                if(type!='jpg'&&type!='bmp'&&type!='gif'&&type!='png'){
                 alert('僅支持jpg、bmp、gif、png格式的圖片');
                 return;
                }
                imgform.form.submit({
                 url : '/newsinfo.mvc/AddFiles_newsinfo',
                 waitMsg : '正在上傳......',
                 waitTitle : '請等待',
                 method : 'POST',
                 success : function() {
                  var element = document.createElement("img");
                  element.src = "../UploadFile/"+filename;
                  element.style.width="300px";
                       element.style.height="200px";
                  if (Ext.isIE) {
                   editor.insertAtCursor(element.outerHTML);
                  } else {
                   var selection = editor.win.getSelection();
                   if (!selection.isCollapsed) {
                    selection.deleteFromDocument();
                   }
                   selection.getRangeAt(0).insertNode(element);
                  }
                  win.close();
                 },
                 failure : function(form, action) {
                  form.reset();
                  if (action.failureType == Ext.form.Action.SERVER_INVALID)
                   Ext.MessageBox.alert('警告',
                     '上傳失敗,僅支持jpg、bmp、gif、png格式的圖片');
                 
                 }
                
                });
               }
              }, {
               text : '關(guān)閉',
               type : 'submit',
               handler : function() {
                win.close(this);
               }
              }]
             })

             var win = new Ext.Window({
                title : "上傳圖片",
                id : 'picwin',
                width : 400,
                height : 120,
                modal : true,
                border : false,
                iconCls:'icon-uploadpic',
                layout : "fit",
                items : imgform

               });
             win.show();
            
          },//上傳圖片的擴(kuò)展
          addFile : function() {
             var editor = this;
             var fileform = new Ext.FormPanel({
              region : 'center',
              labelWidth : 55,
              frame : true,
              bodyStyle : 'padding:5px 5px 0',
              autoScroll : true,
              border : false,
              fileUpload : true,
              items : [{
                 xtype : 'textfield',
                 fieldLabel : '選擇文件',
                 name : 'userfile_F',
                 id : 'userfile_F',
                 inputType : 'file',
                 allowBlank : false,
                 blankText : '文件不能為空',
                 height : 25,
                 anchor : '98%'
                }],
              buttons : [{
               text : '上傳',
               type : 'submit',
               handler : function() {
                var furl="";//文件物理地址
                var fname="";//文件名稱
                furl=fileform.form.findField('userfile_F').getValue();
                var type=furl.substring(furl.length-3).toLowerCase();
                if (furl==""||furl==null) {return;}
                if(type!='doc'&&type!='xls'){
                 alert('僅支持上傳doc、xls格式的文件!');
                 return;
                }
                fname=furl.substring(furl.lastIndexOf("
          \\")+1);
                fileform.form.submit({
                 url : '/newsinfo.mvc/AddFiles_newsinfo',
                 waitMsg : '正在上傳......',
                 waitTitle : '請等待',
                 method : 'POST',
                 success : function() {
                  var element = document.createElement("a");
                  element.href = "../UploadFile/"+fname;
                  element.target = '_blank';
                  element.innerHTML = fname;
                  if (Ext.isIE) {
                   editor.insertAtCursor(element.outerHTML);
                  } else {
                   var selection = editor.win.getSelection();
                   if (!selection.isCollapsed) {
                    selection.deleteFromDocument();
                   }
                   selection.getRangeAt(0).insertNode(element);
                  }
                  winFile.close();
                 },
                 failure : function() {
                  form.reset();
                  if (action.failureType == Ext.form.Action.SERVER_INVALID)
                   Ext.MessageBox.alert('警告',
                     '上傳失敗,僅支持上傳doc、xls格式的文件!');
                 
                 }
                
                });
               }
              }, {
               text : '關(guān)閉',
               type : 'submit',
               handler : function() {
                winFile.close(this);
               }
              }]
             })

             var winFile = new Ext.Window({
                title : "上傳附件",
                id : 'picwin',
                width : 400,
                height : 120,
                modal : true,
                border : false,
                layout : "fit",
                iconCls : 'icon-uploadfile',
                items : fileform

               });
             winFile.show();
            
          },//上傳附件的擴(kuò)展
          addflash : function() {
             var editor = this;
             var flashform = new Ext.FormPanel({
              region : 'center',
              labelWidth : 55,
              frame : true,
              bodyStyle : 'padding:5px 5px 0',
              autoScroll : true,
              border : false,
              items : [{
                 xtype : 'textfield',
                 fieldLabel : 'flash地址',
                 name : 'userflash',
                 id : 'userflash',
                 allowBlank : false,
                 blankText : 'http://',
                 emptyText : 'http://',
                 height : 25,
                 anchor : '98%'
                }],
              buttons : [{
               text : '添加',
               type : 'submit',
               handler : function() {
                var furl="";//文件物理地址
                furl=flashform.form.findField('userflash').getValue();
                var type=furl.substring(furl.length-3).toLowerCase();
                if (furl==""||furl==null) {return;}
                if(type!='swf'&&type!='flv'){
                 alert('非法格式,請檢查!');
                 return;
                }
                var element = document.createElement("embed");
                element.src = furl;
                element.type="application/x-shockwave-flash";
                element.quality="high";
                element.style.width="300px";
                element.style.height="200px";
                if(Ext.isIE) {
                 editor.insertAtCursor(element.outerHTML);
                } else {
                  var selection = editor.win.getSelection();
                  if (!selection.isCollapsed) {
                      selection.deleteFromDocument();
                  }
                  selection.getRangeAt(0).insertNode(element);
                }
                winflash.close();
               }
              }, {
               text : '關(guān)閉',
               type : 'submit',
               handler : function() {
                winflash.close(this);
               }
              }]
             })

             var winflash = new Ext.Window({
                title : "插入flash",
                id : 'flashwin',
                width : 400,
                height : 120,
                modal : true,
                border : false,
                layout : "fit",
                iconCls : 'icon-swf',
                items : flashform

               });
             winflash.show();
            
          },//插入flash的擴(kuò)展
          addfilm : function() {
             var editor = this;
             var filmform = new Ext.FormPanel({
              region : 'center',
              labelWidth : 70,
              frame : true,
              bodyStyle : 'padding:5px 5px 0',
              autoScroll : true,
              border : false,
              items : [{
                 xtype : 'textfield',
                 fieldLabel : '多媒體地址',
                 name : 'userfilm',
                 id : 'userfilm',
                 allowBlank : false,
                 blankText : 'http://',
                 emptyText : 'http://',
                 height : 25,
                 anchor : '98%'
                }],
              buttons : [{
               text : '添加',
               type : 'submit',
               handler : function() {
                var furl="";//文件物理地址
                var regImg = new RegExp(/\.(mp3|wav|wma|wmv|avi|mpg|asf|rm|rmvb)$/);
                var regrm=new RegExp(/\.(rm|rmvb)$/);
                furl=filmform.form.findField('userfilm').getValue();
                //var type=furl.substring(furl.length-3).toLowerCase();
                if (furl==""||furl==null) {return;}
                if(!furl.match(regImg)){
                 alert('非法格式,請檢查!系統(tǒng)支持:mp3,wav,wma,wmv,avi,mpg,asf,rm,rmvb');
                 return;
                }
                var element = document.createElement("embed");
                element.src = furl;
                element.style.width="300px";
                element.style.height="200px";
                if(furl.match(regrm))
                   element.type="audio/x-pn-realaudio-plugin";
                else
                   element.type="video/x-ms-asf-plugin";
                element.loop="true";
                element.autostart="true";
                if(Ext.isIE) {
                 editor.insertAtCursor(element.outerHTML);
                } else {
                  var selection = editor.win.getSelection();
                  if (!selection.isCollapsed) {
                      selection.deleteFromDocument();
                  }
                  selection.getRangeAt(0).insertNode(element);
                }
                winfilm.close();
               }
              }, {
               text : '關(guān)閉',
               type : 'submit',
               handler : function() {
                winfilm.close(this);
               }
              }]
             })

             var winfilm = new Ext.Window({
                title : "插入多媒體",
                id : 'filmwin',
                width : 410,
                height : 120,
                modal : true,
                border : false,
                layout : "fit",
                iconCls : 'icon-film',
                items : filmform

               });
             winfilm.show();
            
          },//插入過媒體的擴(kuò)展
          createToolbar : function(editor) {
             HTMLEditor.superclass.createToolbar.call(this, editor);
             this.tb.insertButton(16, {
                cls : "x-btn-icon",
                iconCls : "icon-uploadpic",
                handler : this.addImage,
                tooltip : "添加圖片",
                scope : this
               });
             this.tb.insertButton(17, {
                cls : "x-btn-icon",
                iconCls : 'icon-uploadfile',
                handler : this.addFile,
                tooltip : "添加文件",
                scope : this
               });
               this.tb.insertButton(18, {
                cls : "x-btn-icon",
                iconCls : 'icon-swf',
                handler : this.addflash,
                tooltip : "添加flash文件",
                scope : this
               });
               this.tb.insertButton(19, {
                cls : "x-btn-icon",
                iconCls : 'icon-film',
                handler : this.addfilm,
                tooltip : "添加多媒體文件",
                scope : this
               });
            this.tb.insertButton(20, {//插入層的擴(kuò)展,即插入div
                cls : "x-btn-icon",
                iconCls : 'icon-div',
                handler : function() {
                   var element = document.createElement("div");
                   element.id="InsertDiv";
                   element.style.backgroundColor="#FAFAFB";
                   element.style.borderWidth="1px";
                   element.style.borderStyle="solid";
                   element.style.borderColor="#AECBE7";
                   element.innerHTML="在此插入內(nèi)容:<BR>";
                   if(Ext.isIE) {
                 editor.insertAtCursor(element.outerHTML);
                } else {
                  var selection = editor.win.getSelection();
                  if (!selection.isCollapsed) {
                      selection.deleteFromDocument();
                  }
                  selection.getRangeAt(0).insertNode(element);
                }
                },
                tooltip : "添加div層",
                scope : this
               });
               this.tb.insertButton(21, { //插入橫線的擴(kuò)展
                cls : "x-btn-icon",
                iconCls : 'icon-hr',
                handler :function() {
                   var element = document.createElement("HR");
                   if(Ext.isIE) {
                 editor.insertAtCursor(element.outerHTML);
                } else {
                  var selection = editor.win.getSelection();
                  if (!selection.isCollapsed) {
                      selection.deleteFromDocument();
                  }
                  selection.getRangeAt(0).insertNode(element);
                }
                },
                tooltip : "添加橫線",
                scope : this
               });
          }
          });
          Ext.reg('CJ_starthtmleditor', HTMLEditor);

          大家可以根據(jù)這個方法繼續(xù)擴(kuò)展自己想要的東西。

          上面上傳圖片和附件有一個方法,內(nèi)容如下:

          //上傳文件
                  [AcceptVerbs(HttpVerbs.Post)]
                  public ActionResult AddFiles_newsinfo(FormCollection collection)
                  {
                      var rdto = new ResultDTO();
                      var c = Request.Files[0];
                      if (c != null && c.ContentLength > 0)
                      {
                          string filename = c.FileName;
                          string destination = Server.MapPath("/UploadFile/");
                          c.SaveAs(destination+ filename);
                      }
                      return null;
                  }

           

          使用的時候,首先在頁面中添加該js的引用,然后,在需要的地方加入以下代碼:

                                   {
                                      border : false,
                                      columnWidth : 1,
                                      layout : 'form',
                                      items : [{
                                         fieldLabel : '信息內(nèi)容',
                                         xtype : 'CJ_starthtmleditor',
                                         name : 'nr',
                                         id : 'nr',
                                         allowBlank : false,
                                         anchor : '98%'
                                        }]

                                     }


          轉(zhuǎn)載地址:http://hi.baidu.com/jackvoilet/blog/item/38551a3dc709d40cbba16717.html

          posted on 2010-08-30 00:01 艾波 閱讀(3908) 評論(0)  編輯  收藏 所屬分類: Extjs
          主站蜘蛛池模板: 华池县| 新平| 扎赉特旗| 泗阳县| 闽侯县| 孝昌县| 太原市| 尉犁县| 泸溪县| 中超| 新丰县| 科技| 象山县| 西乌珠穆沁旗| 临沧市| 盈江县| 潞西市| 清新县| 密云县| 温泉县| 新河县| 宁城县| 青龙| 临夏市| 长垣县| 浙江省| 武平县| 张北县| 平远县| 手机| 昌邑市| 吉隆县| 前郭尔| 方城县| 高雄县| 清徐县| 四子王旗| 高要市| 赣榆县| 松阳县| 永顺县|