页面中有一个下拉框,根据这个下拉框选中的值来动态加载不同的UEditor。
根据《JavaScript DOM 编程艺术》这本书里的指示,我遵循了“预留退路”的原则,也就是说不能完全依赖于脚本来实现重要功能,因为万一用户的浏览器不支持脚本中的某些功能,其代价是重要功能的丧失。在我的项目里,用户需要靠编辑器来给题库中添加题目,所以我直接在网页中硬编码了一些简单的input控件,这样即使脚本出现问题,用户依然可以正常使用。如果脚本没有问题,则用脚本来动态的将这些朴素的input控件替换为功能更加齐全的UEditor。
为了测试这项功能,我并没有在网页刚刚加载时就调用getEditor(),而只将getEditor()的调用放在了下拉框的change()函数里。当网页刚加载时输入框都是简单的input控件,然后我在下拉框中随便选择一项,input控件被清空,对应的UEditor控件被载入。事实上,目前为止,我还没有定制其他题型对应的UEditor,也就是说,如果现在我在下拉框中重新选择一项,它的change()函数只是重新加载当前的这个UEditor而已,可是这次却出问题了。旧的UEditor被清空了,可是新的UEditor却没有被重新加载出来。
通过对比两次选择下拉框选项之后网页的变化,我发现了原来UEditor API中的getEditor()函数在加载UEditor的同时,会在网页中添加好多东西:
加载UEditor之前:
</