子ページを直接開こうとした場合には親ページを呼んで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から開く