2012-10-10 72 views
1

H7i傢伙,我有一個TinyMce編輯器的奇怪問題。我想要做的是選擇一些文本,單擊一個按鈕並在開始和結尾添加一個標籤。TinyMce編輯器不返回標籤

例如,如果原始文本是<p>hello</p>,則結束文本將是<myTag><p>hello</p></myTag>

它工作正常,但選擇單行文本時,不會返回現有標記。所以在前面的例子中,我只會得到hello而不是<p>hello</p>

當我選擇多行時,它返回標籤。

這裏是我到目前爲止已經試過:

  var se = ed.selection.getContent(); //Doesn't return tags on single line 
      var be = ed.selection.getNode().outerHtml; //Doesn't work with multiline 
      var ke = ed.selection.getContent({ format: 'raw' }); //Same as the first option 

任何幫助嗎?

回答

1

您將需要使用不同的功能來獲取內容,根據內容的用戶選擇

var node = ed.selection.getNode(); 

if (node.nodeName != 'P') 
{ 
    content = ed.selection.getContent(); 
} 
else content = node.outerHtml; 
+0

感謝哥們,像魅力一樣工作。唯一的問題是你把'x.outerHtml'而不是'node.outerHTML'。請注意大寫的HTML,因爲javascript區分大小寫。 – TheGateKeeper

+0

正確,我在編輯時更改了變量名 - 將盡快修正此錯誤 – Thariama

1

我用這個,而且效果很好:

var textt= tinyMCE.activeEditor.selection.getContent({format : 'text'}); 
alert(textt); 

但要注意:你應該不從段落開始到段落結尾選擇文本,

http://i42.tinypic.com/110fate.png

因爲在這種情況下(可能是TinyMce的bug),它不能獲得內容。