7cc@はてなブログ

JavaScriptとかとか

ownerDocument, document

createElementでつくった要素

var div = document.createElement("div")
div.ownerDocument === document // true

ownerDocumentは文書中に要素があるかは関係ない。

xhrで得た要素

var xhr = new XMLHttpRequest
xhr.open("GET", document.URL)
xhr.responseType = "document"
xhr.onload = function(e){
  var doc = e.target.response
    , a =doc.getElementsByTagName("a")[0]
  console.log(
    a.ownerDocument === document // false
  )
  document.body.appendChild(p)
  console.log(
    a.ownerDocument === document // true
  )
}
xhr.send(null)

親ノードになるドキュメント次第で変わる。

いつ使うのか

複数のwindowがある場合。例えば、<iframe>