2012-09-10 42 views
0

我的站點是http://littlehousearts.com。我正在使用Prestashop並添加了javascript來顯示每個頁面加載的橫幅。目前我只有一個橫幅圖片,並且它在主頁和分類頁面上的加載效果很好。但它並不總是在產品頁面上加載。我能夠查看源代碼並在源代碼中正確地查看腳本標籤。我使用的標籤是:Javascript並未在每個頁面顯示

<script src="banner.js" type="text/javascript"></script> 

在JavaScript文件中的代碼是:

function random_imglink(){ 
    var myimages=new Array(); 
    index=0; 

    //specify random images below. You can have as many as you wish 
    myimages[1]="<a href='http://littlehousearts.com/28_golden'><img src='/img/golden.png' width='943' alt='GOLDEN Acrylic Paints' /></a>";  

    index=Math.floor(Math.random()*myimages.length); 

    if (index == 0){ 
    index=1; 
    } 

    document.write(myimages[index]); 
} 
random_imglink(); 

橫幅我現在有負荷下「獲得學分」,並顯示黃金的專業品質色彩。

任何想法,爲什麼這不會加載在一些頁面上?我測試它加載一個不存在的圖像,應該有一個文本在該位置,讀取undefined,但它甚至不顯示在它丟失的頁面上。

+0

你能給這裏沒有顯示旗幟的鏈接? – Oriol

回答

0

我的猜測是你有這個問題,因爲你使用相對URL。

然後,banner.js指向當前目錄中的文件。所以,如果你在「http://littlehousearts.com」,它指向「http://littlehousearts.com/banner.js」,但如果你在「http://littlehousearts.com/a/」它指向「http://littlehousearts.com/a/banner.js」。

相反的,你應該使用相對URL到你的網站的根目錄:

<script src="/banner.js" type="text/javascript"></script> 

這樣一來,它始終指向「http://littlehousearts.com/banner.js」

+0

謝謝!這工作 –

1

問題是您將第一個橫幅分配給myimages[1],因爲數組索引是從零開始的,而JavaScript是動態擴展數組,所以您的數組現在長度爲2.因此,您的隨機數生成器會創建索引0和1。你的旗幟只會顯示一半的時間。另一半的時間什麼都沒有出現。你應該改變

myimages[1]="<a href='http://littlehousearts.com/28_golden'><img src='/img/golden.png' width='943' alt='GOLDEN Acrylic Paints' /></a>"; 

myimages[0]="<a href='http://littlehousearts.com/28_golden'><img src='/img/golden.png' width='943' alt='GOLDEN Acrylic Paints' /></a>"; 
0
  1. 把js文件在你的主題

  2. 對於添加站點中的js文件的JS文件夾,你有2個解決方案:

    • 在標題中。你的主題的第三方物流文件,添加以下代碼:
      <script src="{$js_dir}myfile.js"></script>

    • 覆蓋FrontController.php(功能setMedia)

相關問題