2016-06-02 6 views
4

domNode.isConnectedはクロムで利用可能なフラグです。 domNodeがドキュメントの一部であるかどうかを示します。
クロスブラウザと互換性がありますか?
他のブラウザではこれに代わる効率的な方法はありませんか? 利用可能なドキュメントのリンクを提供してください。domノードの 'isConnected'フィールドの信頼性

+1

これは少しX/Yの問題のように聞こえます。要素がDOMの一部であるかどうかを知る必要がある理由を説明してください。必要なものを実現するためのよりよい方法があるかもしれません。 –

+0

ノードがdomの一部であるかどうかを知る方法はいろいろあります。しかし、これはトラバーサルを必要としないため、最も効率的でした。私はちょうどこれについてもっと知りたいと思います。 –

+1

簡単なドキュメントです - https://dom.spec.whatwg.org/#dom-node-isconnected –

答えて

10

var input = document.getElementById('input'); 
 
alert(input.isConnected);
<input type="text" id="input">

が、ポリフィルに非常に簡単。

(function (supported){ 
 
    if (supported) return; 
 
    Object.defineProperty(window.Node.prototype, 'isConnected', {get}) 
 
    function get() { 
 
    return document.contains(this); 
 
    } 
 
})('isConnected' in window.Node.prototype);

+2

fyi: 'document.contains'が存在しないため、IE10では動作しません。https:// connect。 microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect – Marius

+0

*ノード*にはtiは存在しませんが、*要素には存在します* – mkoryak

+0

IEではdocument.body.containsを使用できます。 –

2

簡単なテストでは、Firefoxはこのプロパティをサポートしていないことを示しています。だから答えはいいえ。

https://jsfiddle.net/hu08awn0/それはサポートされていません

関連する問題