2012-12-12 50 views
1

Google Closure Library編輯器:demo,documentation如何在Google Closure Library富文本編輯器中設置默認字體

可編輯區域是一個iframe。如何設置可編輯區域的默認字體?現在它是瀏覽器的默認字體。我不希望在可編輯區域**中的內容周圍放置字體標籤。這樣,我可以在將來更改我網站的字體,而無需修改編輯器中編寫的每個HTML內容。

**我的意思是這樣的:

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

我寧願只是這樣的:

<b>content</b> 

...然後風格的編輯器的可編輯區域使用CSS的格魯吉亞字體。這樣,數據庫中的HTML內容(由編輯器生成)不會包含硬編碼字體,因此我可以在將來更改字體。

編輯:也許我應該使用SeamlessField而不是Field作爲可編輯區域?

回答

1

一旦您在goog.editor.Field上致電makeEditable()(它創建您引用的iFrame),該字段就會觸發類型爲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文件,你可以添加任何你想要的造型。比如你的字體改變。

+0

太棒了,謝謝! – Korneel

相關問題