FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 6095|回复: 5
打印 上一主题 下一主题

ueditor 在IE9下无法正常使用,后台初始化ueditor

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-9 01:00:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
环境:IE9+vs2010
问题:在IE9/chrome下面使用ueditor后 editor_all.js 报错。在IE8下面就没有问题。不知道怎么解决。

报错代码:this.body.innerHTML = html.replace( new RegExp( '[\r' + domUtils.fillChar + ']*', 'g' ), '' );



前后台代码按照示例写的。
前台
<script type="text/javascript">
        window.UEDITOR_HOME_URL = "<%= ResolveUrl("/Admin/Js/ueditor/") %>";
    </script>
    <script type="text/javascript" src="/Admin/Js/ueditor/editor_config.js"></script>
    <script type="text/javascript" src="/Admin/Js/ueditor/editor_all.js"></script>
    <script type="text/javascript">
        var editor = new UE.ui.Editor({
            minFrameHeight: 150
        });
        editor.render("txb_Content");
        // 提交数据之前同步到表单隐藏字段
        X.util.beforeAjaxPostBackScript = function () {
            editor.sync();
        };
        // 更新编辑器内容
        function updateUEditor(content) {
            editor.setContent(content);
        }
    </script>

后台
PageContext.RegisterStartupScript(String.Format("updateUEditor({0});", JsHelper.Enquote(sc.ntxtContent)));

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2013-3-13 00:55:38 | 只看该作者
没有人遇到这种情况吗?
板凳
发表于 2013-6-7 19:55:28 | 只看该作者
我用谷歌和IE都不行   而且还出现编辑器不能输入的情况   好郁闷  什么情况?
地板
发表于 2013-10-21 16:15:02 | 只看该作者
我这里也遇到
5#
发表于 2013-11-13 17:55:58 | 只看该作者
这个地方不是BUG,其实是和页面的渲染顺序相关。

简单说来,通过PageContext.RegisterStartupScript 注册的函数会在 用户自定义脚本之前执行,导致此时UEditor的客户端实例还没有初始化。

有很多办法可以解决这个问题:
1. 在 Page_Load 时向页面的隐藏字段赋值,然后在自定义脚本 UEditor初始化完毕后初始化(哪位同学感兴趣,把这个方法实现一下分享给大家
2. 还有一个简单的做法就是,延时初始化,如下所示:
  1. string content = "初始化内容";
  2.                 PageContext.RegisterStartupScript(JsHelper.GetDeferScript(String.Format("updateUEditor({0});", JsHelper.Enquote(content)), 500));
复制代码

3. 提出你自己的方法?

=============================
对JS熟悉的可以看下 FineUI v4.0 中对Ueditor的处理:http://fineui.com/demo_v4/#/demo_v4/aspnet/ueditor.aspx
其中用到了jQuery 的 Deferred 和 Promise,算是比较高级的内容了,

如果看不懂,可以先看我的博客:
http://www.cnblogs.com/sanshi/archive/2011/03/10/1980195.html
http://www.cnblogs.com/sanshi/archive/2011/03/11/1981789.html

6#
发表于 2013-12-25 13:29:18 | 只看该作者
sanshi 发表于 2013-11-13 17:55
这个地方不是BUG,其实是和页面的渲染顺序相关。

简单说来,通过PageContext.RegisterStartupScript 注册 ...

  解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-6-3 19:07 , Processed in 0.047056 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表