753Note

備忘メモ

iframe 子ページを親ページから開き直す

子ページを直接開こうとした場合には親ページを呼んでiframeから開き直してもらう仕組み
【子ページ(child2.html)側の記述】
 if (window == window.parent) { // 自分が親(直接開かれている)かどうかの判別
  var filename = window.location.href.split('/').pop(); // 開かれたファイル名の取得
  location.href = "./parent.html#" + filename; // #ファイル名を親に送信
 }
【親ページ(parent.html)側の記述】
 var url = new URL(window.location.href); // 開かれたURLの取得
 var hash = location.hash.substring(1); // #ファイル名からファイル名を取得
 if (hash == ""){
  var filename = "child0.html"; // デフォルトで開くファイル名
 }else{
  var filename = hash; // 開き直すファイル名(child2.html)
 }
 var insertData = "<iframe src='./" + filename + "'></iframe>";
 document.querySelector('#iframe').innerHTML = insertData; // iframeから開く