1

Google Closure 库编辑器:演示文档

可编辑区域是 iframe。如何设置可编辑区域的默认字体?现在它是浏览器的默认字体。我不想在可编辑区域的内容周围放置字体标签**。这样,我以后可以更改我网站的字体,而无需修改编辑器中编写的每个 HTML 内容。

** 我的意思是这样的:

<font size="2" face="georgia, serif"><b>content</b></font>

我宁愿这样:

<b>content</b>

...然后使用 CSS 使用 georgia 字体为编辑器的可编辑区域设置样式。这样,我数据库中的 HTML 内容(由编辑器生成)将不包含硬编码字体,因此我可以在将来更改字体。

编辑:也许我应该使用 aSeamlessField而不是 aField作为可编辑区域?

4

1 回答 1

1

一旦你调用makeEditable()goog.editor.Field创建你引用的 iFrame 的 ,Field 就会触发一个类型为 的事件goog.editor.Field.EventType.LOAD。如果您收听该事件,您可以拉出 iFrame 并将链接元素放入 CSS 样式表,以便您可以轻松地修改编辑器中的内容。

这相当于我的一位听众,应该让你走上正轨。(我没有检查是否goog.editor.Field是事件的目标,但我认为它是)。

some.namespace.Page.prototype.onEditorLoad_ = function(event) {
  var editor = /** @type {goog.editor.Field} */ (event.target);
  var iFrame = editor.getEditableIframe();
  if (iFrame) {
    var fieldDomHelper = editor.getEditableDomHelper();
    var documentNode =
      fieldDomHelper.getFrameContentDocument(iFrame).documentElement;

    var head = documentNode.getElementsByTagName(goog.dom.TagName.HEAD)[0];
    if (!head) {
      head = fieldDomHelper.createDom(goog.dom.TagName.HEAD);
      goog.dom.insertChildAt(documentNode, head, 0);
    }

    fieldDomHelper.appendChild(
      head,
      fieldDomHelper.createDom(
        goog.dom.TagName.LINK,
        { 'href': '/css/myCSS.css', 'rel': 'stylesheet', 'type': 'text/css' }
      )
    );
  }
}

最后,在那个 CSS 文件中,你可以添加任何你想要的样式。比如你的字体改变。

于 2012-12-13T18:06:26.363 回答