为什么我不能将<object>标签插入CKEditor4?</object>

时间:2013-09-03 02:35:15

标签: javascript html html5 ckeditor

我的网页上有一个按钮,可以触发此功能来插入视频,这里是代码:

function setVideo(encodeUrl) {
    var url = decodeURIComponent(encodeUrl);
    var htmlstr = "<div id='video_segment'><object  id='obx' name='obx'   width='290' height='260'>";
    htmlstr += "<param name='movie' value='" + url + "'></param>";
    htmlstr += "<param name='allowFullScreen' value='true'></param>";
    htmlstr += "<param name='allowscriptaccess' value='always'></param>";
    htmlstr += "<param name='wmode' value='opaque'></param>";
    htmlstr += "<embed src='" + url + "' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' wmode='opaque' width='290' height='260'></embed>";
    htmlstr += "</object></div>";
    alert(htmlstr);
    CKEDITOR.instances.Content.insertHtml(htmlstr);
 }

但是,它无法将对象标记插入到我的CKEditor中。顺便说一句,我可以通过这种方式插入图像。为什么?

1 个答案:

答案 0 :(得分:3)

首先,您需要配置最有可能剥离大部分HTML的Advanced Content Filter。例如,您可以使用以下内容扩展现有设置:

config.extraAllowedContent = 'div[id]; object[id,name,width,height]; param[name,value]; ' +
    'embed[src,type,allowscriptaccess,allowfullscreen,wmode,width,height]';

请注意,有一个官方的flash插件,它不包含在标准的CKEditor包中(我猜你已经拥有),它允许所有objectembedparam代码。

因此,如果您将该插件包含在您的包中,您将能够省略我在上面定义的大部分extraAllowedContent