2017-08-06 15 views
0

誰かが持っていると確信している間に誰かがこの問題に遭遇したことを期待してフォーラムを検索しました。外部の.jsファイルHTMLファイルにリンクしたときに中断する

ここに私の問題があります:外部の.jsファイルを入手すると、スクリプトスコープ内のすべてのJavaScriptが壊れます。私は、スクリプトのソースをどのようにしているか、外部ファイルに問題があるかどうかは分かりません(ローカルのHTMLファイルにコピーしても問題ありません)。私は答えのために高いと低いを検索し、私は木の森を見ることができない時点にいると思う。

<!-- BANNER INJECTION --> 
    <div class="container"> 
     <div class="left"> 
      <img id="banL" src="./images/banner_placeholder_L.png"> 
      <script src="banners.js"> 
       document.write("this"); 
       //var newBan = randomBanner(); 
       //document.write(newBan); 
       //document.getElementById("banL").src=ranomBanner(); 
      </script> 
     </div> 
     <div class="right"> 
      <img id="banR" src="./images/banner_placeholder_R.png"> 
      <script> 
       //document.getElementById("banR").src=randomBanner(); 
      </script> 
     </div> 
    </div> 

マイフォルダ構造は次のとおりです:

./ 
-index.html 
-banners.js 
./images/ 
-banner_placeholder_L.png 
-banner_placeholder_R.png 

function randomBanner() 
{ 
    var banners = new Array(); 
     banners[0] = "\"./images/banner_placholder_L.png\""; 
     banners[1] = "\"./images/banner_placholder_R.png\""; 

    var ranIndex = Math.floor(Math.random()*banners.length); 
    return banners[ranIndex]; 
} 

ここで私はコードを挿入しようとしていますセクションがあります:

は、ここに私の外部コード(banners.js)です

私はインターネットでグーグルとオグルをしました。私が考えることができるのは、私が簡単なことをいくつか見落としていることだけです。

答えて

0

私はすでに成功していないのにこれを試していましたが、スコープを頭に動かしてから、ページの後ろでrandomBanner()を呼び出すとうまくいかないようです。

しかし、私は現在、アップデートしていないという新しい問題にぶつかっています。しかしそれは別の問題です。

** banners.jsを頭に動かし、下記の中にdocument.write(randomBanner())コールを追加してテストしました。

0

あなたのコード構造が好きではありません - あなたがそれを使用すると予想される場所にhtmlに入れるのではなく、スクリプトを一度しか挿入しないでください。

あなたのコメントアウトされたコンテンツに2つの問題があります - タイプミス(ランダムな俗称ではありません) - 配列内のコンテンツに誤りがあります - あなたは配列に引用符をエスケープしています - src要素を更新するために配列要素が使用されたとき - それらの引用符はそれを中断させます。

エスケープされた引用符を削除し、src属性が期待どおりに更新されるかどうかを確認します。あなたはまた、

banners[0] = "./images/banner_placeholder_L.png"; 
    banners[1] = "./images/banner_placeholder_R.png"; 

プレースホルダでなければなりませんplacholder)配列srcの中にタイプミスを(おそらく)持っている - あなたは簡略化することができる配列として:

var banners =["./images/banner_placeholder_L.png","./images/banner_placeholder_R.png"]; 
関連する問題