Nivo Slider无法在IE8中运行

时间:2011-10-11 11:03:12

标签: javascript jquery internet-explorer-8 nivo-slider

我在公司网站上遇到了 jquery nivo滑块的一些问题。

首先,该网站由一家提供内部cms的公司主持,我们无法改变任何内容。这就是为什么我没有任何权限在Head-Tag中加载任何东西而且无法上传除该服务器上的图像之外的任何文件

所以我找到了一个Javascript,后来加载了CSS文件。所有这些都适用于每个浏览器(Chrome,FF,IE6,IE9),除了 IE8 ,NivoSlider只加载第一个图像,显示没有标题,没有导航。

我不知道为什么会这样做,因为如果我在本地执行代码(如下所示),它就可以工作(所有文件也存储在本地)。

<script type="text/javascript" src="slider/scripts/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="slider/scripts/jquery.nivo.slider.js"></script>
<script type="text/javascript">
  function loadjscssfile(filename, filetype){
     if (filetype=="js"){ //if filename is a external JavaScript file
      var fileref=document.createElement('script')
      fileref.setAttribute("type","text/javascript")
      fileref.setAttribute("src", filename)
     }
     else if (filetype=="css"){ //if filename is an external CSS file
      var fileref=document.createElement("link")
      fileref.setAttribute("rel", "stylesheet")
      fileref.setAttribute("type", "text/css")
      fileref.setAttribute("href", filename)
     }
     if (typeof fileref!="undefined") {
      document.getElementsByTagName("head")[0].appendChild(fileref)
    }
    }

  function toggle() {
    var slider = document.getElementById("slider");
    slider.style.display = "block";
  }

    $(window).load(

    function() {
            loadjscssfile("slider/css/nivo-default.css", "css");
            loadjscssfile("slider/css/nivo-slider.css", "css");
            toggle();
            $('#slider').nivoSlider();

    }
    );

</script>

Hoster使用 Prototype JS Framework 作为他们的CMS,所以我想也许会导致某种干扰。实际上,如果我在IE8中打开Devtools,我会在Hoster提供的Prototype.js文件中显示一些错误

var nodes = $(element).getElementsByTagName('*');
className = ' ' + className + ' ';

for (var i = 0, child, cn; child = nodes[i]; i++) {
  if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
      (classNames && classNames.all(function(name) {
        return !name.toString().blank() && cn.include(' ' + name + ' ');
      }))))
    elements.push(Element.extend(child));
}

它不喜欢这些行,它说的东西(从德语翻译)“对象不支持这个值或方法”

您可以看到原始主页和代码XXX并亲自试用。我希望你能帮我解决我的问题。

1 个答案:

答案 0 :(得分:0)

使用Chrome的开发人员工具进行检查,我能看到的唯一问题是:

var nivo-child = $(this);

您不能在变量名称中使用短划线,将其更改为nivo_childnivoChild


要解决第二个错误,您需要使用jQuery.noConflict()