1

プログレッシブエンハンスメントを備えたWebページがあります。スクリプトによってページにいくつかのフォーマットと要素が追加されます。

このページでは、インライン編集も可能です。

これが私の問題です。編集モードでは、プログレッシブエンハンスメントスクリプトがその役割を果たし、マークアップを追加します。一部のマークアップは編集可能な領域に入るので、ユーザーがページを保存すると保存されますが、これはもちろん望ましい動作ではありません。

インライン編集とプログレッシブエンハンスメントを同じページで機能させるためのクリーンな方法は何でしょうか?

4

3 に答える 3

1

インライン編集を開始するときに、コンテンツ編集可能にする div の ID を特定の値に設定し、この div を選択しないようにプログレッシブ エンハンスメント スクリプトのセレクターを変更できます。(編集可能な div が複数ある場合は、それらのクラス名を設定できます。)

于 2011-12-04T03:51:43.467 に答える
0

私は jQuery マニアなので、jQuery で回答します。

<script>
    // before attaching your progressive enhancement
    // do this assuming this after your page loads
    $('selector-on-what-you-want-to-enhance').not('[contenteditable=true]').each(function(){
    // enhance away
    });
</script>
于 2011-12-09T23:34:42.497 に答える
0

プログレッシブ エンハンスメント スクリプトはマークアップを追加して重要なコンテンツ スニペットを強調表示しますが、自動的に追加されたマークアップを保存したくないとおっしゃいました。クリーンで効率的なソリューションは次のとおりです。

  • 一般的なクラスや非表示のデータ属性など、保存する前に削除する必要があるラッパーにある種の分類法<span class="inline-highlighted-element"></span>を追加します。
  • 保存前に削除する必要がある要素の識別子 (クラス名、データ属性) を含むブラックリストを作成します。
  • インライン編集システムで、サニタイズ機能を作成し、ユーザーがコンテンツを保存または更新しようとするたびにそのブラックリストを使用してコンテンツをフィルター処理すると、拡張スクリプトが追加した自動マークアップが削除されます。
  • おそらく、サーバー側でサニタイズ機能を再現して、コンテンツが実際に適切にフィルタリングされることを確認する必要があります。
于 2011-12-04T03:07:35.643 に答える