変数objがあります
obj は何でもかまいません。obj が関数かどうかを検出したいと思います。通常、私はするだろう
typeof obj === 'function'
obj がネイティブ関数の場合、問題は IE <= 8 にあります (少なくとも、window.open と window.alert で発生することを知っておいてください)。object が window.open === 'object' の場合の IE の typeof obj
window.open が実際に関数かどうかを確認する信頼できる方法はありますか?
これでjQueryも失敗することがわかります
$.isFunction(window.open) => false //in IE
これは明らかにjquery 1.3か何かで削除されましたが、それ以前にどのようにテストしたかはわかりません。
追加: 1つの方法は電話することのようです
Function.prototype.apply.apply(window.open)
これでエラーが発生しない場合、window open は関数です。もしあなたがそうするなら
Function.prototype.apply.apply({})
次に、IE は「関数が必要です」というエラーをスローします。しかし、ウィンドウを開いて変数が関数かどうかを確認するのは良い解決策とは言えません..