SilverlightクライアントがFCCeditorを呼び出す

1797 ワード

ここ数日silverlightでポータルのバックグラウンドのデータを入力して、フロントはAspを使います.Net展示.テーブル、テキストの色、下線などを含むフォーマットされたテキストは、html形式のテキストをデータベースに保存する必要があります.これにより、フロントで直接表示できます.
この問題に対して、私たちのプロジェクトマネージャは私にFCCeditorを推薦してくれました.これはhtmlテキストエディタで、オープンソースプロジェクトです.ネット上で関連する使い方(ネットで検索できますが、ここでは説明しません)を探して、このコントロールを含むページを追加して、エディタを表示することができます.
次の問題はsilverlightクライアントがサービス側のこのページを呼び出し、編集したテキストをエディタに渡す方法です.エディタの編集が終わったら、どうやって編集したテキストをslコントロールに渡しますか?
これをどのように実現するか、私は少しも経験がなくて、同僚に相談して、得た解決策は、クライアントがサービス側のjsスクリプトを呼び出して、スクリプトを通じてエディタのページを開いて、それからエディタのページが保存する時スクリプトを通じてslコントロールを呼び出す方法で、内容をslコントロールに伝えます.
 
//      js  
1   ScriptObject hello = HtmlPage.Window.GetProperty("Hello") as ScriptObject;
2   hello.InvokeSelf(this.input.Text);

新しいウィンドウを開くjsスクリプトはネット上にたくさんありますが、ここは邪魔ではありません.
編集後のテキストをslコントロールに渡すには、jsスクリプトでslコントロールを呼び出す方法を使用します.具体的にはブログパークの「Silverlight 2シリーズ(22):SilverlightでJavaScriptで.NETコードを呼び出す方法を一歩一歩学びます」を参照してください.
以上が最初の解決策です.
その後、クライアントは新しいウィンドウを開き、絶対uriを直接使用し、ウィンドウはコンテンツを取得してslコントロールを呼び出す方法に変更して値を返します.

 


実は最も注目すべきなのはFCCeditorの保存ボタンイベントの方法で、その保存ボタンを使うことができるため、コードの中に入ってこの一節を見ます
FCKSaveCommand.prototype.Execute = function(){//Get the linked field form. var oForm = FCK.GetParentForm() ;
if ( typeof( oForm.onsubmit ) == 'function' ) { var bRet = oForm.onsubmit() ; if ( bRet != null && bRet === false ) return ; }...
そこでformのonsubmitにスクリプトメソッドを実装し,保存ボタンのイベントを更新した.
何が起こっているのか分からないと書いて、自分に書いて、ここ数日の仕事を振り返り、記載しましょう.