2017-03-03 13 views
0

iframeがロードされているとき私は 'アクティブ'クラスを使用しています。iframe JavaScript onload

<script type="text/javascript"> 
function frameload(){ 
    document.getElementById("loadnav").className = "active"; 
} 
document.getElementById("loadnav").className = "inactive"; 
</script> 
<iframe src="https://www.wikipedia.org/" onload="frameload()"></iframe> 

問題はロード後に「非アクティブ」に戻らないということです。

+1

私はあなたが最初のクラスを削除するために持っていると思います –

答えて

1

カップルの事

  1. 後に実行されるいくつかが存在する必要がありますDOMContentLoadedのリスナーです。iframeが実際にページに表示される前に、document.getElementById("loadnav").className = "inactive";が実行しようとしているため、

iframe { 
 
width: 100%; 
 
height: 100%; 
 
} 
 
iframe.inactive { 
 
border: 2px solid red; 
 
} 
 
iframe.active { 
 
border-color: green; 
 
}
<script> 
 
function frameload(){ 
 
    document.getElementById("loadnav").className = "active"; 
 
} 
 
function init(){ 
 
    document.getElementById("loadnav").className = "inactive"; 
 
    document.getElementById("loadnav").addEventListener('load', frameload); 
 
} 
 

 
document.addEventListener('DOMContentLoaded', init); 
 

 
</script> 
 

 
<iframe src="https://www.wikipedia.org/" id='loadnav'></iframe>

1

jQueryを使用しようとしていますか?命令document.getElementById( "loadnav")。className = "非アクティブ";あなたはとてもdocument.getElementByIdは何

  • を行うことはありません、あなたはiframeにidを持っていないのiframeをロード

    $('iframe').load(function() { 
    document.getElementById("loadnav").className = "inactive"; 
    }); 
    
  • 関連する問題