innerHTML
オブジェクトの「純粋な」JavaScript プロパティと、またはのようなネイティブ プロパティを区別する必要がありますstyle
。
Safari ではプロパティを使用Object.getOwnPropertyDescriptor()
して確認できconfigurable
ます (特別なプロパティの場合は false) が、残念ながら Chrome や Firefox では同じ結果になりません (プロパティが構成可能であることを返します)。
このフィドルを別のブラウザーで試して、問題を確認してください。
プロパティが特別な内部プロパティであるかどうかを判断する信頼できる方法はありますか?
アップデート
undefined
ネイティブ プロパティのプロパティ記述子を取得しようとすると、Firefox が実際に返されることに気付きました。残念ながら、Chrome は通常のプロパティとまったく同じように見えるプロパティ記述子を返します。
たとえばinnerHTML
、Chrome の記述子は次のとおりです。
{"value":"","writable":true,"enumerable":true,"configurable":true}
...そして、「test」と呼ばれる空の文字列プロパティの場合:
{"value":"","writable":true,"enumerable":true,"configurable":true}
まったく同じ。:(