ベースhtmlファイル(base.html)があり、その中に(iframe.html)を使用するiframeがあります。iframe は、特定のメニュー項目をクリックしたときにのみ表示されます。どちらも同じドメインでホストされています。
base.html には、私が使用する外部サービスを指すスクリプトを含めています。スクリプトを含めると、ページに存在するオブジェクトが返されます。
<script type="text/javascript" src="externalSite.com/myID.js"></script>
iframe.html には、返されたオブジェクトの属性の一部に基づいてメニューを構築する別のスクリプトがあります。
<script type="text/javascript" src="my_list_builder.js"></script>
my_list_builder.js のコードは次のようになります。
var myList = parent.externalAPI.getItems()
var listBlock = "<div><ul>"
for (var i = 0; i < myList.length; i++) {
listBlock += '<li><span>'+ myList[i].Name + '</span></li>';
}
listBlock += '</ul></div>'
$('someElement').append(listBlock);
これで、このコードは期待どおりに実行され、必要なページに listBlock が追加されますが、Chrome で iframe 内の要素を調べようとすると、それができません。iframe は検査できる最下位の要素ですが、通常のドロップダウン オプションはありません。my_list_builder.js を削除すると、問題なく iframe 内の要素を調べることができます。
問題の原因についてのアイデアはありますか?