私は社内開発のためのライブラリコードを書いていますので、これはまったく個人的な満足感です。問題があれば、エラーログにはかなり早くそれが記録され、更新を行うことができます。 。私は、可能な場合は、それらのを避けたいのですが:DDOM型を保証するのにObject.getPrototypeOf(val).toString()は安全ですか?
ライブラリはどちらかdocument.get...
、document.createElement
またはonmousedown
イベントから供給され、渡された<th>
または<td>
値を操作する必要があります。オブジェクトの間違ったソート(すなわち非th
/td
が)機能に入ったとき、私は問題を持っていたので、私は、関数の先頭に失敗アウト条項を入れている:
function doSomething (cell) {
var _objName = Object.getPrototypeOf(cell).toString();
if (_objName.indexOf("HTMLTableCellElement") === -1 &&
_objName.indexOf("HTMLTableHeaderCellElement") === -1) {
// log error
return false;
}
// normal work here
}
はこれです安全?私たちの会社の中に、現代(IE 10+、クローム)のブラウザをターゲットだし、現時点で動作するようです:(<TH>
用)
- IEは(
<TD>
について)"[object HTMLTableCellElementPrototype]"
を返すか、"[object HTMLTableCellHeaderElementPrototype]"
- クロームリターンを両方
ため"[object HTMLTableCellElement]"
は私が非文書化、実装の詳細に依存することだし、我々は他のブラウザに移動したり、ブラウザが更新されると物事が壊れしようとしていることを心配します。
これは安全ですか、正しく入力するために別の方法を使用する必要がありますか?この入力の中には、ユーザーがクリックしたものから生じるものがあるため、関数に行く無効な入力が間違いなくあります。
ああ、それは非常に明白です、今私はそれがそこにあることを知っています...ありがとう! –