2017-04-25 1 views
0

埋め込みタグ付きのマークアップがあります。#documentコンテンツにアクセスします。埋め込みタグから#documentのdom要素にアクセスするには?

enter image description here

は、フェッチした後に埋め込みタグまで横断しようとした利用可能な機能getElementByTagNameが(存在するが、内側のノードにアクセスすることはできなかった)又はgetElementByClassName()それは

var embedContent = document.getElementById('embed1') 
var parentContents = x.parentElement.parentNode.lastElementChild.getElementsByTagName('embed') 
> [function, embed1: function] 
を助けませんそれぞれのタグの値を取得する方法を、この後に埋め込みタグにアクセスすることができる以下

enter image description here

enter image description here

はい任意のURLや例を提供してください場合は、これは??達成するための別の方法があります。

答えて

3

<embed>タグの内容は、本質的にロックされたシャドーDOMです。これは、Chromeがアクセスできる新しい文書ですが、できません。

それはあなたがアクセスできるプロパティをチェックするのは簡単です:

var xObj = document.getElementById('xObj'); 
 

 
for (var p in xObj) { 
 
    var value = null; 
 
    try { 
 
    value = xObj[p]; 
 
    } catch (err) {} 
 

 
    if (value) 
 
    console.log(p, value); 
 
}
<embed id="xObj" src="http://stackoverflow.com"> </embed>

実際にHTMLを取得するための最善の策は、そのコンテンツを自分でロードすることです:

var response = await fetch(document.getElementById('embedTag').src); 
+0

さて、他のウェブサイトのマークアップにアクセスする方法はありますか?同じ起源のためにiframeを試しましたので、ここでも埋め込みタグに移動しました。他の可能な方法@Keith – rselvaganesh

+0

@rselvaganesh同じオリジンポリシーを迂回するものは、セキュリティ上のバグであり、かなり素早く修正される可能性があります。 – Keith

関連する問題