0

私は現在、FCKEditor をいじっています。スタック オーバーフローが、入力時に投稿が HTML でどのように表示されるかを正確に再現しようとしています。私の FCKEditor は問題なく作成されますが、作成されたエディター データにアクセスする方法がわかりません。私がやりたいことは、エディターから html を取得し、<p id="inputText"></p>. $("#fckEdtr") を使用して jQuery でアクセスしようとしても機能しません。これは、javascript でオンザフライで作成されているためです。FCKeditor JavaScript API の IsDirty() メソッドは知っていますが、エディターの現在のインスタンスを取得してメソッドを使用する方法の確かな例を見たことがありません。誰でも助けることができますか?私のコードは以下の通りです:

<html>
<head>
<title>FCKeditor Test</title>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript"> 
    $(document).ready(function() {
          ...code to output editor data as user types
    }); 
</script>
</head>
<body>
<form>
<script type="text/javascript">
    var oFCKeditor = new FCKeditor('fckEdtr');
    oFCKeditor.BasePath = "./fckeditor/";
    oFCKeditor.ToolbarSet = 'Default';
    oFCKeditor.Create();
</script><br/><br/>
<input type="submit" value="Post" />
<p id="inputText">
</p>
</form>
</body>
</html>
4

2 に答える 2

1

すでに答えを見つけたのは良いことですが、WYSIWYGエディターを扱っているときになぜプレビューウィンドウが必要なのか疑問に思います。私の推測では、エディターで取得している外観は、CSSが適用されているため、結果の外観とは異なります。私が間違っている場合は、以下のアドバイスを無視してください。

その場合、CSSの最も関連性の高い部分を\ fckeditor \ editor \ css \ fck_editorarea.cssにコピーして、エディターウィンドウに適用することを検討してください。もちろん、違いが必要な場合もあります。たとえば、スポイラーは投稿時に非表示にする必要がありますが、エディターには表示されます。

于 2009-05-07T23:08:13.453 に答える
1

SOに関する別の質問でこれに対する答えを見つけました:

ASP.Net サイトで FCKeditor のライブ プレビューを有効にするにはどうすればよいですか?

また、段落要素の代わりに div 要素を使用すると機能します。これが役立つかもしれない人のための私の最終的な作業コードです:

<html>
<head>
<title>FCKeditor - Sample</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript">         
    function FCKeditor_OnComplete( oFCKeditor )
    {  
         oFCKeditor.Events.AttachEvent( 'OnSelectionChange', function() {        
              document.getElementById("postText").innerHTML = 
                    oFCKeditor.GetHTML(true); 
         }) ;
    }
</script>
</head>
<body>
<form method="post" action="process.php">
<script type="text/javascript">
    var oFCKeditor = new FCKeditor('fckEdtr');
    oFCKeditor.BasePath = "./fckeditor/";
    oFCKeditor.ToolbarSet = 'Custom' ;
    oFCKeditor.Create();
</script><br/><br/>
<input type="submit" value="Post" />
<div id="postText">
</div>
</form>
</body>
</html>
于 2009-05-06T19:18:03.093 に答える