Javascript不会出现在每个页面上

时间:2012-09-10 14:07:15

标签: javascript prestashop

我的网站是http://littlehousearts.com。我正在使用Prestashop并添加了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();

我目前加载的横幅是&#34;获得积分&#34;并展示金色专业品质的色彩。

知道为什么这不会加载到某些页面上?我测试了它以加载一个不存在的图像,并且该位置应该有一个文本,内容为undefined,但它甚至不会显示在缺少的页面上。

4 个答案:

答案 0 :(得分:2)

此处没有广告

http://littlehousearts.com/drawing/84-stockmar-wax-crayons-8-colours-supplementary-assortment.html

它有;

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

无效,因为它在\ drawing目录中查找;

http://littlehousearts.com/drawing/banner.js 404 (Not Found) 

因此,请更改子目录中脚本的路径,或使用src属性中的完整URL。

答案 1 :(得分: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>";

答案 2 :(得分: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”

答案 3 :(得分:0)

  1. 将js文件放在主题的js文件夹中

  2. 要在您的网站中添加js文件,您有2个解决方案:

    • 在主题的header.tpl文件中,添加以下代码:
      <script src="{$js_dir}myfile.js"></script>

    • 覆盖FrontController.php(函数setMedia)