css - 如何在 Google Closure Library 富文本编辑器中设置默认字体

标签 css iframe google-closure google-closure-library

Google Closure 库编辑:demo , documentation .

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

** 我的意思是这样的:

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

我更喜欢这个:

<b>content</b>

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

编辑:也许我应该为可编辑区域使用 SeamlessField 而不是 Field

最佳答案

goog.editor.Field 上调用 makeEditable() 后,它会创建您引用的 iFrame,Field 会触发 goog 类型的事件。编辑器.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 文件中,您可以添加任何您想要的样式。比如你的字体改变。

关于css - 如何在 Google Closure Library 富文本编辑器中设置默认字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850067/

相关文章:

javascript - 从 iframe 内容到对象内容的 jquery 选择器

javascript - 完全使用 iframe 嵌入页面,没有边框,曾经有边框的地方没有空格

CSS 内容漂浮在不同尺寸的屏幕上。

css - 单击 if 内的链接时翻转卡片(仅使用 CSS)

html - DIV居中对齐

javascript - 使用@typedef 定义特定的函数类型

CSS3 - 变换 :translate property when clicking on a link

javascript - 为什么第二个脚本会阻止第一个脚本重定向,我该如何解决?

javascript - 让 Closure/Plovr 从 if 中删除函数,它总是 false