1

<head>タグ内に CSS および JS 関数 (自分で作成したものではない) を定義した HTML/CSS/JS ページがあります。ページの最初にタイトルが表示され、その下には JS を使用して動的に動作する CSS スタイルで定義された 4 つのタブがあります。次に、ロードする必要がある独自の JS 関数を追加したいと思いましたonload

<script type="text/javascript"> 
    function replaceSrc()
    {
        document.getElementById("ytplayer").src = "blablabla";
    }
    window.onload = replaceSrc;
</script>

ただし、ページを実行すると、CSS/JS によって作成されたすべてのコンテンツが消えます (ページのタイトルだけが残ります)。

だから私の質問は:

  1. 読み込み中の JS 関数が既に 1 つ定義されていることが問題になる可能性がありonloadますか?
  2. もしそうなら、それをどのように処理しますか?

関数宣言を HTML 内の別の場所に配置して、タグから削除してタグに挿入しようとしましたが、まだ機能しません。

4

2 に答える 2

7

あなた (または他の誰か) が wi​​ndow.onload = someFunction を使用すると、以前に添付されたすべてのロード イベント ハンドラーが削除されます。

addEventListenerを使用する必要があります。

window.addEventListener('load', replaceSrc);

古い IE ブラウザーと互換性を持たせたい場合は、

if (window.addEventListener){
  window.addEventListener('load', replaceSrc, false);
} else if (window.attachEvent) {
  window.attachEvent('onload', replaceSrc);
}

EDIT : あなたのコメントから、別のオリジンの別のサーバーによって提供される iframe の src を変更しようとしているようです。同一オリジン ポリシーにより、これを行うことはできません。たとえば、この関連する質問を参照してください:クロスドメインで src Iframe を変更する

于 2013-05-20T12:45:56.067 に答える