mowatermelon / studyNode

Learning record
MIT License
4 stars 1 forks source link

6.19 #49

Open mowatermelon opened 7 years ago

mowatermelon commented 7 years ago

kindeditor以模态窗形式出现的时候,在ie中编辑的获取到的width为0,不知道为什么,

//以下是我的失败尝试
//在父级页面控制子级的宽度
        $("#showModal").on("loaded.bs.modal",function (){
        //在模态框加载的同时做一些动作
 var s_width = (modalW * 0.9) > $("#modalIframe").contents().find("#txtNR").width() ? modalW * 0.9 : $("#modalIframe").contents().find("#txtNR").width();
                $("#modalIframe").contents().find("#txtNR").width(s_width);
        });
        $("#showModal").on("show.bs.modal",function (){
        //在show方法后调用
 var s_width = (modalW * 0.9) > $("#modalIframe").contents().find("#txtNR").width() ? modalW * 0.9 : $("#modalIframe").contents().find("#txtNR").width();
                $("#modalIframe").contents().find("#txtNR").width(s_width);
        });
            var s_width = (modalW * 0.9) > $("#modalIframe").contents().find("#txtNR").width() ? modalW * 0.9 : $("#modalIframe").contents().find("#txtNR").width();
            $("#modalIframe").contents().find("#txtNR").width(s_width);
            $("#modalIframe").load(function () {
                var s_width = (modalW * 0.9) > $("#modalIframe").contents().find("#txtNR").width() ? modalW * 0.9 : $("#modalIframe").contents().find("#txtNR").width();
                $("#modalIframe").contents().find("#txtNR").width(s_width);

            });

//在子级页面进行控制
        KindEditor.ready(function (K) {
          $("#txtNR").width($("#selZT").width());
            editor = K.create('#txtNR', {
                resizeType: 1,
                allowPreviewEmoticons: false,
                allowImageUpload: false,
                items: [
                        'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
                        'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
                        'insertunorderedlist', '|', 'emoticons', 'image', 'link']
            });
        });
mowatermelon commented 7 years ago
ctrl+shift+f9
清除vs中所有断点
mowatermelon commented 7 years ago

弄kindeditor的图片上传,刚好同事也在做附件上传之类,所以放在这里希望以后有需要的时候可以直接用。

        var editor;
        KindEditor.ready(function (K) {
            editor = K.create('#txtNR', {
                resizeType: 1,
                allowPreviewEmoticons: false,
                allowImageUpload: true,
                allowImageUpload: true, //允许上传图片
                allowFileManager: true, //允许对上传图片进行管理
                uploadJson: '../RemoteHandle/upload_json.ashx', //上传图片的后台代码路径
                fileManagerJson: '../RemoteHandle/file_manager_json.ashx', //上传文件的后台代码路径
                afterUpload: function () { this.sync(); }, //图片上传后,将上传内容同步到textarea中
                afterBlur: function () { this.sync(); },   ////失去焦点时,将上传内容同步到textarea中
                items: [
                        'source', '|', 'undo', 'redo', '|', 'preview', 'code','copy','paste','plainpaste', 'wordpaste','template', 'selectall', '|',  'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
                        'removeformat', '|', 'indent','outdent','quickformat','strikethrough', 'lineheight', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
                        'insertunorderedlist', 'table', 'hr', '|', 'image', 'multiimage', 'baidumap', 'fullscreen' ]
            });
        });
<%@ webhandler Language="C#" class="Upload" %>

using System;
using System.Collections;
using System.Web;
using System.IO;
using System.Globalization;
using System.Text.RegularExpressions;
using LitJson;
using System.Collections.Generic;
public class Upload : IHttpHandler
{
    private HttpContext context;

    public void ProcessRequest(HttpContext context)
    {
        String aspxUrl = context.Request.Path.Substring(0, context.Request.Path.LastIndexOf("/") + 1);

        //文件保存目录路径
        String savePath = "../../Image/upload/";

        //文件保存目录URL
        //String saveUrl = aspxUrl + "../attached/";
        String saveUrl = savePath;

        //定义允许上传的文件扩展名
        Hashtable extTable = new Hashtable();
        extTable.Add("image", "gif,jpg,jpeg,png,bmp");
        extTable.Add("flash", "swf,flv");
        extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
        extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");

        //最大文件大小
        int maxSize = 1000000;
        this.context = context;

        HttpPostedFile imgFile = context.Request.Files["imgFile"];
        if (imgFile == null)
        {
            showError("请选择文件。");
        }

        String dirPath = context.Server.MapPath(savePath);
        if (!Directory.Exists(dirPath))
        {
            showError("上传目录不存在。");
        }

        String dirName = context.Request.QueryString["dir"];
        if (String.IsNullOrEmpty(dirName)) {
            dirName = "image";
        }
        if (!extTable.ContainsKey(dirName)) {
            showError("目录名不正确。");
        }

        String fileName = imgFile.FileName;
        String fileExt = Path.GetExtension(fileName).ToLower();

        if (imgFile.InputStream == null || imgFile.InputStream.Length > maxSize)
        {
            showError("上传文件大小超过限制。");
        }

        if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dirName]).Split(','), fileExt.Substring(1).ToLower()) == -1)
        {
            showError("上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dirName]) + "格式。");
        }

        //创建文件夹
        //dirPath += dirName + "/";
        //saveUrl += dirName + "/";
        //if (!Directory.Exists(dirPath)) {
        //    Directory.CreateDirectory(dirPath);
        //}
        String ymd = DateTime.Now.ToString("yyyyMMdd", DateTimeFormatInfo.InvariantInfo);
        dirPath += ymd + "/";
        saveUrl += ymd + "/";
        if (!Directory.Exists(dirPath)) {
            Directory.CreateDirectory(dirPath);
        }

        String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
        String filePath = dirPath + newFileName;

        imgFile.SaveAs(filePath);

        String fileUrl = saveUrl + newFileName;

        Hashtable hash = new Hashtable();
        hash["error"] = 0;
        hash["url"] = fileUrl;
        context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
        context.Response.Write(JsonMapper.ToJson(hash));
        context.Response.End();
    }

    private void showError(string message)
    {
        Hashtable hash = new Hashtable();
        hash["error"] = 1;
        hash["message"] = message;
        context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8");
        context.Response.Write(JsonMapper.ToJson(hash));
        context.Response.End();
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }
}
mowatermelon commented 7 years ago

KINDEDITOR工具箱解释

source  HTML代码
preview 预览
undo    后退
redo    前进
cut 剪切
copy    复制
paste   粘贴
plainpaste  粘贴为无格式文本
wordpaste   从Word粘贴
selectall   全选
justifyleft 左对齐
justifycenter   居中
justifyright    右对齐
justifyfull 两端对齐
insertorderedlist   编号
insertunorderedlist 项目符号
indent  增加缩进
outdent 减少缩进
subscript   下标
superscript 上标
formatblock 段落
fontname    字体
fontsize    文字大小
forecolor   文字颜色
hilitecolor 文字背景
bold    粗体
italic  斜体
underline   下划线
strikethrough   删除线
removeformat    删除格式
image   图片
flash   Flash
media   视音频
table   表格
hr  插入横线
emoticons   插入表情
link    超级链接
unlink  取消超级链接
fullscreen  全屏显示
about   关于
print   打印
code    插入程序代码
map Google地图
baidumap    百度地图
lineheight  行距
clearhtml   清理HTML代码
pagebreak   插入分页符
quickformat 一键排版
insertfile  插入文件
template    插入模板
anchor  插入锚点