2017-08-06 76 views
0

我搜索了論壇,希望有人在我之前遇到過這個問題,雖然我確定有人有,但他們可能足夠聰明,自己修復它。當鏈接到HTML文件時外部.js文件崩潰

這是我的問題:當採購外部.js文件時,腳本範圍內的所有JavaScript都會中斷。我不知道我是如何採購腳本的,或者如果外部文件中存在問題(儘管我已將其複製到本地HTML文件中並且工作正常),是否存在問題。我已經搜索了高和低的答案,我想我在我看不到樹林的地方。

這裏是我的外部代碼(banners.js):

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]; 
} 

這裏是我試圖注入代碼段:

<!-- 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 

我已經谷歌和oggled遍佈互聯網。我能想到的唯一事情就是我忽略了一些簡單的事情。

回答

0

所以我不確定發生了什麼事,因爲我已經嘗試過這個沒有成功,但將範圍移動到頭部,然後在頁面中稍後調用randomBanner()似乎工作。

但是,我現在遇到了一個新的問題沒有更新。然而這是一個不同的問題。

**通過將banners.js移動到頭部並在下面添加document.write(randomBanner())調用進行測試。

0

我不喜歡你的代碼結構 - 最好讓腳本只插入一次然後引用 - 而不是把它放到你希望使用它的任何地方。

有兩個問題可能導致你的問題 - 在你的註釋掉的內容中 - 你有一個錯字(ranom不是隨機的) - 然後你的數組中的內容有問題 - 你正在將引號轉義到數組中 - 當數組元素用於更新src時 - 這些引號會導致它斷開。

刪除轉義引號並查看src屬性是否按預期更新。你也有錯別字(大概)在陣列SRC公司(placholder應該佔位

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

也 - 您可以簡化陣列爲:

var banners =["./images/banner_placeholder_L.png","./images/banner_placeholder_R.png"];