2016-05-10 3 views
2

適切に書式設定された単語文書の内容をコピーすると、H1タグ、3つの段落、URLリンク、電子メールリンクがあります。いくつかのイタリック体の単語 - 基本的に非常に基本的な文書ですが、書式は保持されません。以下は私のinitファイルです。Wordから貼り付けるときにTinyMCEエディタ(3.x)を変更する方法2015

tinyMCE.init({ 
    // General options 
    mode : "exact", 
    elements : "content", 
    theme: "advanced", 
    //plugins : "safari,pagebreak,advhr,advimage,advlink,iespell,insertdatetime,preview,paste,fullscreen", 
    plugins : "pagebreak,style,advlink,iespell,insertdatetime,preview,print,contextmenu,paste,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups", 
    plugin_preview_width : "500", 
    plugin_preview_height : "600", 
    // Theme options 
    theme_advanced_buttons1:"cut,copy,paste,pasteword,|,undo,redo,|,bold,italic,underline,|,forecolor,backcolor|,justifyleft,justifycenter,justifyright,|,bullist,numlist,|fullscreen,code,iespell,imageButton,preview", 
    theme_advanced_disable : "help,removeformat,sub,sup,anchor,link,unlink,image,|,insertdate,inserttime,advhr,print", 
    theme_advanced_buttons2 : "", 
    theme_advanced_buttons3 : "", 
    paste_auto_cleanup_on_paste: false, 
    theme_advanced_toolbar_location : "top", 
    theme_advanced_toolbar_align : "center", 
    valid_elements : "*[*]", 
    convert_urls:true, 
    cleanup : false   
}); 

次のコンソールコマンドを実行すると、「html」コードが表示されます。また、ツールバーのHTMLアイコンをクリックすると、そこにもHTMLコードが表示されます(ただし、H1タグは最初のものを除いてすべて削除されています)。

// Get the HTML contents of the currently active editor 
console.debug(tinyMCE.activeEditor.getContent()); 

// Get the raw contents of the currently active editor 
tinyMCE.activeEditor.getContent({format : 'raw'}); 

// Get content of a specific editor: 
tinyMCE.get('content').getContent() 

私は送信ボタンをクリックすると、私は私のアクションページで持っているすべてはシンプルにcfdumpあり、そこに、それだけでプレーンテキストと段落以来の巨人です。 Pタグはなく、H1タグではなく、プレーンテキストだけです。

<cfdump var="#form.content#"> 
<cfoutput> 
    #form.content# 
    <textarea>#form.content#</textarea> 
</cfoutput> 

ちょうどにやにや笑いのために、アクションページに、私は、ブラウザゲームを遊んでいたかもしれない場合は、単に確認するために、データベースが唯一のプレーンを示すデータ型はnvarchar(2000)のデータ型を持つ私のMSSQLデータベースにform.contentを挿入しましたテキストも。別の異常があるのは、Chromeでテストページを実行すると、プレーンテキストのみが保存されることです。 FireFoxでテストページを実行すると、Microsoft XMLデータが保存されます。

私は1つのブラウザで作業するだけです。誰かがこれに関するガイダンスを提供することはできますか?

+0

http://archive.tinymce.com/tryit/3_x/full.php - このサンプルは、ダンプ内のhtmlタグを示しています。唯一の違いは、ダンプはPHPですが、それは問題ではないでしょうか? – HPWD

+0

私が考えることができるのは、クロスサイトスクリプティング攻撃を避けるために、エディタがHTMLを取り除いていることです。 TimyMCEはHTMLエディタではなく、テキストエディタです。 HTMLを入力したい場合は、そのアイコンを介してHTMLビューを開いてそこにHTMLを貼り付けるべきでしょう。 –

+0

Xサイトスクリプティングは、間違いなく私が考慮しなかったものです。 HTMLエディタとテキストエディタの面では、(データベースフィールドなどから)HTMLコードを渡すことができます。テキストエディタと同等のテキストエディタに変換します。制限を理解していますが、渡されるコンテンツがその機能を十分に備えている必要があります。 Xスクリプトについては、その安全機能を無効にする属性は偶然にわかりますか? – HPWD

答えて

0

スパゲッティコードが大好きです。

私が見逃したロジックは、私が逃したブラウザのチェックをしていたので、本当に問題はfckeditorであり、tinymceではないということでした。

/スタートスニペット:http://ckeditor.com/forums/Support/FCK-Link-picker-errors-FF-3

私はFCK 2.3.2と同じ問題を抱えて。私が持っていた 旧コード:

FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=document.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};

新コード:実際には、私だけでdocument.evaluateを置き換え

FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};

を最良の解決策は、fckeditorcode_gecko.jsに機能CREATELINKを変更することですthis.EditorDocument.evaluate

/endスニペット

関連する問題