3

我已将 CKEditor 集成到我的网站 CMS 中。预览按钮有效,但我无法让它使用样式表 (CSS)。我已经编辑了 preview.html 位于:

网站/ckeditor/plugins/preview/

但它似乎没有听我环绕从所见即所得编辑器中提取内容的代码的任何 html。

据我了解这段代码:

<script>

var doc = document;
doc.open();
doc.write( window.opener._cke_htmlToLoad );
doc.close();

delete window.opener._cke_htmlToLoad;

</script>

拉入编辑器中的任何内容,因此我应该能够环绕该 html 以包含可用于每个页面的元素?以及指向样式表的链接?

有人做过吗?可能吗?

4

1 回答 1

0

“window.opener._cke_htmlToLoad”似乎是一个字符串(包含一个完整的 html 文档)。

要获取 <body></body> 的 innerHtml,可以使用以下正则表达式:

var doc = window.opener._cke_htmlToLoad; // is string
var innerBody = ( doc.replace(/((?:.(?!<\s*body[^>]*>))+.<\s*body[^>]*>)|(<\s*\/\s*body\s*\>.+)/g,'') );
document.getElementById('insertIntoMe').innerHTML = innerBody;

从我的测试来看,这似乎只适用于 Firefox。但是 Chrome 和 Internet Explorer 直接显示窗口文档,不允许任何更改。那么也许其他人可以提供更好的解决方案?

于 2012-09-07T15:52:27.170 回答