ueditor - javascript 是否存在函数引用传递?
PHPz
PHPz 2017-04-10 14:30:02
0
2
575

需求:百度UEditor,如果一实例化那么将开头的空段HTML去掉。
修改:javascript

源码

function removeEmpty(e){
    e.setContent('');
}
var ueContent = UE.getEditor('content');
ueContent.addListener('ready',removeEmpty(ueContent));

报错

TypeError: me.body is undefined

提问
1)为什么无法将ueContent这个对象传入到函数removeEmpty中
2)百度UEditor如何去掉头尾部默认的这一段HTML

PHPz
PHPz

学习是最好的投资!

reply all(2)
大家讲道理
  • 第一个问题”javascript 是否存在函数引用传递?“,我想你可能还不了解”引用类型“和”基本类型“的概念,这里有一篇文章你可以看一下:http://hellobug.github.io/blog/javascript-variable-assignment/

  • 第二个问题”为什么无法将ueContent这个对象传入到函数removeEmpty中“,我猜你大概是弄错了回调函数的写法,

    ueContent.addListener('ready',removeEmpty(ueContent));
    

    你这样子写自然是不行的,因为你在这句代码执行的时候就调用了 removeEmpty ,代码里怎么可能能得到 me.body ,这个应该是 ready 后才能拿到的东西吧?
    改成这样试试:

    ueContent.addListener('ready', function() { removeEmpty(ueContent) });
    
  • 第三个问题,我也不知道

洪涛

应该是这样吧

var ueContent = UE.getEditor('content');
ueContent.addListener('ready',function(editor){
    //editor.setContent("");
    ueContent.setContent("");
});

http://ueditor.baidu.com/doc/#UE.Editor:ready

btw: 我没用过uedtior. 不过我会查文档,google再发问.

更新,走眼了.

如果是要清空初始化的html,我这答案还真不对.

跟踪了下代码.

主要是在这个函数_setup(编辑器初始化).

if (domUtils.isEmptyNode(me.body)) {
                me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
}

这个me.body来自render函数(渲染编辑器的DOM到指定容器), 里面一段关于iframe代码的.

<body class=\'view\' ></body>

貌似写死了.

艹, 转了一圈,使用以下代码,就可以清空所有初始化内容了.

ueContent.addListener('ready',function(editor){
    //editor.setContent("");
    ueContent.body.innerHTML = '';
});
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template