要約: 私が質問しようとしているのは、これは完全に間違った方法ですか? それとも、Sharepoint またはそのリッチ エディターが、追加された HTML を変更するのを止める方法はありますか?
私は、Sharepoint 2007 を中心に展開するプロジェクトに「ドロップ」されました (私を信じてください、私はそれについて完全に満足しているわけではありません)。ユーザーが「リッチ コンテンツ」を挿入してから、展開可能なコンテンツ エリアやダイアログなどの特定の「エクストラ」をコンテンツに追加します。
攻撃の最初の計画は、Sharepoint リッチ コンテンツ エディターのツールバーにカスタム ボタンを追加することでした。これを実行するためのコードがあり、それが機能し、JavaScript イベント ハンドラーを特定の要素 (これも機能します) にアタッチします。
私たちが行っていることの 1 つは、<a>
エレメントとそれに続く<div>
を使用してダイアログをセットアップすることです (jQuery UI を使用して魔法を行います)。ユーザーが「ダイアログの挿入」ボタンをクリックすると、以下がエディターに挿入されます。
<a href="#" class="dialog-trigger">Click me to open the dialog</a>
<div class="dialog-content">
this is some dialog content etc
</div>
ページが読み込まれると、.dialog-trigger クリック メソッドにフックし、a
要素の兄弟である を取得し、それ.dialog-content
をダイアログとして設定します。何も編集したくない限り、これは「機能」します。
私が見つけたのは、.dialog-content
DIV 内のコンテンツの編集を開始するとすぐに、リッチ コンテンツ エディターが HTML の改変を開始することです。たとえば、リストを追加すると、次の HTML が追加されます。
<li><div class=dialog-content>Some list item</div></li>
<li><div class=dialog-content>Some list item 2</div></li>
<li><div class=dialog-content>Another list item</div></li>
ご想像のとおり、この種のことは私たちがやろうとしていることを壊します。
私が尋ねようとしていることを要約すると、これは完全に間違った方法で行っているのでしょうか、それとも、Sharepoint またはそのリッチ エディターが追加された HTML を変更するのを止める方法はありますか?