1

「例外で一時停止」が機能するのと同様に、svg要素を作成して無効な属性を設定するたびに一時停止することは可能ですか?

この例(jsfiddleでのテスト):

circle.setAttribute('fill', 'steelblue');
circle.setAttribute('r', 'big'); // A 'big' circle is obviously wrong

chromeで次のエラーが生成されますが、svgを生成したjavascript呼び出しへのマッピングがないため、エラーを見つけるのが難しい場合があります。

ここに画像の説明を入力してください

4

2 に答える 2

2

ブラウザでsvgがどのようにレンダリングされるかにより、これは不可能です。svgがXML、または(HTML)に似ていると想像してみてください。コード行のようなステッププロセスでは実行されません。オブジェクトとその属性をすばやくレンダリングするレンダリングエンジンに読み込まれます。一時停止は、このレンダリング中にエンジン内で発生する必要があり、これにより、あらゆる種類のレンダリングの問題が発生します。

あなたの例を参照すると、javascriptはsetAttribute値に渡すものに対してタイプチェックを行いません(つまり、異なる属性が異なるタイプを必要とするため、実際にはできませんでした)が、そのキーと値のペアを要素オブジェクト。(前後に円オブジェクトをログに記録してみてください。そうすれば、私が何を意味するかがわかります)。後で円をDOMに追加すると、上記のようにオブジェクトを取得して解析します。

基本的に、このタイプのエラー処理はブラウザーに存在しません。これは、例にあるコードが正しく、正しく実行されるためです。ただし、プログラマーは、正しいタイプの値をsetAttributeメソッドに渡していることを確認する必要があります。したがって、JavaScriptのエラーではなく、ブレークポイントを取得できないのはそのためです。

于 2012-06-28T00:29:27.013 に答える
1

タイプチェックを行うラッパーを作成できます。SVG仕様を読んで、各要素の属性に許可される値を決定します。

于 2012-06-28T00:34:52.510 に答える