編集済み: この問題は、最新のすべてのブラウザーで発生します。Firefox、Chrome、および IE9 でのテストはすべて同じように動作します。したがって、以下に示すように、私の JavaScript は古い IE バージョンでのみ機能します。
最初に起動したときに単一のヘルプ ページを表示する自家製の Web ヘルプ システムがあります。
各ヘルプ ページには、フレームセットのコンテキストでそれ自体を表示するためのリンクを含むヘッダー div があります (わかっています、わかっています)。
リンクを生成する JavaScript は次のとおりです。
<script type="text/JavaScript">
$.noConflict();
var frameurl="frameset.html?";
var filename=location.href.substring(location.href.lastIndexOf('/') + 1,location.href.length);
var truncate=location.href.substring(0, location.href.length-filename.length - 1);
var subfolder=truncate.substring(truncate.lastIndexOf('/')+1,truncate.length)+"/";
var newurl=frameurl+filename;
document.write('<a href="' + newurl + '"><span class="bannerlink">Contents and Search</span></a>');
</script>
基本的に、現在表示されているページに基づいて URL を構築します。したがって、結果の URL は次のようになります。
frameset.html?About_account_demographics_xaa_insight.html
そして、frameset.html には、その文字列を解釈して正しいページを表示する次のスクリプトが含まれています。
<script type="text/javascript">
function load() {
var test=(location.href.lastIndexOf('?'));
if (test>0) {
var page=location.href.substring(location.href.lastIndexOf('?') + 1,location.href.length);}
else {
var page="about_help.html";
}
document.getElementById("contentwin").src=page; }
</script>
これは、IE 8 までのバージョンの IE で意図したとおりに機能します。もちろん、互換モードを有効にすることで、IE9 で動作させることができます。
IE9 では、contentwin
フレームは空白です。他のすべてのブラウザでは、コンテンツは希望どおりに表示されます。
編集: フレームセット コードは次のとおりです。
<frameset onload="load()" rows="52px,*" border=0 frameborder=0>
<frame border=0 frameborder=0 src="fis_hdr.html" name="header" scrolling="no"/>
<frameset border=0 frameborder=0 cols="210px,*">
<frameset border=0 frameborder=0 rows="50px,*">
<frame border=0 frameborder=0 scrolling="no" name="searchwin" src="sub/searchbox.html"/>
<frame marginwidth="5px" border=0 frameborder=0 name="indexwin" src="tocnav.html"/>
</frameset>
<frame border=0 frameborder=0 name="contentwin" src=""/>
</frameset>
</frameset>