Я пытаюсь получить:
document.createElement('div') //=> true
{tagName: 'foobar something'} //=> false
В моих собственных сценариях я просто использовал это, так как мне никогда не понадобилось tagName
как свойство:
if (!object.tagName) throw ...;
Итак, для второго объекта я придумал следующее как быстрое решение, которое в основном работает.;)
Проблема заключается в том, что браузеры используют свойства только для чтения, которые не все делают.
function isDOM(obj) {
var tag = obj.tagName;
try {
obj.tagName = ''; // Read-only for DOM, should throw exception
obj.tagName = tag; // Restore for normal objects
return false;
} catch (e) {
return true;
}
}
Есть ли хорошая замена?