1

編集済み: この問題は、最新のすべてのブラウザーで発生します。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> 
4

1 に答える 1

3

解決策は、ID を参照しているという事実であり、その値を持つ ID はありません。

document.getElementById("contentwin").src=page; }  <-- you are referencing an id
<frame border=0 frameborder=0 name="contentwin" src=""/>  <-- There is no id here!

フレームにIDを追加!

<frame border=0 frameborder=0 name="contentwin" id="contentwin" src=""/> 
于 2012-12-06T22:13:23.373 に答える