UEditor不能重新加载的问题

博客讲述了在JavaScript中使用UEditor遇到的问题,即动态加载和重新加载UEditor时导致的错误。作者遵循“预留退路”原则,确保在脚本失效时用户仍能使用基本功能。在下拉框改变时调用getEditor()加载或重新加载UEditor,但发现第二次加载失败,因为尝试重复添加已存在的元素。解决方案是刷新整个页面以清除UEditor添加的元素,同时传递用户选择的项以保持状态。最后,作者提到UEditor使用了Internet Explorer特有的defer属性,可能引发潜在问题。
摘要由CSDN通过智能技术生成

页面中有一个下拉框,根据这个下拉框选中的值来动态加载不同的UEditor。

根据《JavaScript DOM 编程艺术》这本书里的指示,我遵循了“预留退路”的原则,也就是说不能完全依赖于脚本来实现重要功能,因为万一用户的浏览器不支持脚本中的某些功能,其代价是重要功能的丧失。在我的项目里,用户需要靠编辑器来给题库中添加题目,所以我直接在网页中硬编码了一些简单的input控件,这样即使脚本出现问题,用户依然可以正常使用。如果脚本没有问题,则用脚本来动态的将这些朴素的input控件替换为功能更加齐全的UEditor。

为了测试这项功能,我并没有在网页刚刚加载时就调用getEditor(),而只将getEditor()的调用放在了下拉框的change()函数里。当网页刚加载时输入框都是简单的input控件,然后我在下拉框中随便选择一项,input控件被清空,对应的UEditor控件被载入。事实上,目前为止,我还没有定制其他题型对应的UEditor,也就是说,如果现在我在下拉框中重新选择一项,它的change()函数只是重新加载当前的这个UEditor而已,可是这次却出问题了。旧的UEditor被清空了,可是新的UEditor却没有被重新加载出来。

通过对比两次选择下拉框选项之后网页的变化,我发现了原来UEditor API中的getEditor()函数在加载UEditor的同时,会在网页中添加好多东西:

加载UEditor之前:
加载UEditor之前</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值