2011-10-11 117 views
0

我在我的公司網站上遇到一些與jquery nivo滑塊有關的問題。Nivo滑塊不能在IE8中工作

首先,該網站由一家公司託管,他們提供了一個內部cms,我們無法更改任何內容。這就是爲什麼我沒有任何權限來加載頭標記中的任何內容,並且無法上傳除該服務器上的圖像以外的任何文件。

因此,我找到了一個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> 

主控器使用原型JS框架他們的CMS,所以我想也許這會導致某種形式的干擾。其實,如果我打開Devtools在IE8我顯示我在由主控器

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

它不喜歡這些行提供的文件的Prototype.js一些錯誤,它說,像(德國翻譯)「的對象不支持此值或方法「

您可以看到原始主頁和代碼XXX並自行嘗試。我希望你能幫我解決我的問題。

回答

0

與Chrome的開發者工具檢查,我可以看到的唯一問題是這樣的:

var nivo-child = $(this); 

你不能在變量名破折號,將其更改爲nivo_childnivoChild


要修復第二個錯誤,您需要使用jQuery.noConflict()

+0

對不起,我在調整。我改變了它形成孩子BC我認爲這是造成干擾。現在我將把它留給你們。 – BorisB

+0

我編輯了我的答案。 – thirtydot

+0

ty,修復了第二個錯誤,但在IE8中仍存在相同問題 – BorisB