当初、シリアル化されたDOM文字列からYUI3 classNames(またはクラス全体の属性)とid属性を削除する正規表現は十分に適切なアプローチだと思っていましたが、HTMLでの正規表現の使用に関するさまざまな警告があるため、今はわかりません。
問題のDOM構造のコピーを作成して、次のことを実行するというアイデアをいじっています。
var nodeStructure = Y.one('#wrap').all('*'); // A YUI3 NodeList
// Remove unwanted classNames.. I'd need to maintain a list of them to remove :/
nodeStructure.removeClass('unwantedClassName');
その後:
// I believe this can be done on a NodeList collection...
nodeStructure.removeAttribute('id');
とにかくノードのコレクションを「コピー」するために何をする必要があるのかよくわかりません。実際には、生きているマークアップに上記を実行したくないのです。または「終了」した場合、ユーザーは引き続きマークアップを変更してから、再度保存することができます。上記はコピーを作成しません、私は知っています。
これは効率的ですか?文字列として保存する前に、DOMへのフレームワーク追加のライブマークアップ(および後で他のものも)を「サニタイズ」するためのより良い方法はありますか?それが良いアプローチである場合、安全なクリーニングのためにノードのコレクションをコピーするための安全な方法は何ですか?
ありがとう!d
(これは、シリアル化されたDOM構造全体をクリーンアップする最初のアイデアに関する正規表現関連の投稿です:シリアル化されたDOMをクリーンアップするための安全な正規表現?、必要に応じて、その質問にはサンプルHTMLが含まれています)