2015-09-22 34 views
2

我有它的一些JS accordians一個網站,他們不開放,但是他們做codepen。我在Chrome瀏覽器中查看了控制檯,並且沒有出現任何錯誤消息。但是,當我在Firefox中查看控制檯時,我收到7次以下錯誤消息:JS accordians不開放

不支持「text/html」的HTTP「Content-Type」。媒體資源負載http://xurbia.tk/alpha/homebeta.html失敗。 homebeta.html

所有候選資源加載失敗。媒體加載已暫停。 homebeta.html

我不知道這裏發生了什麼,所以任何幫助非常感謝。

對手風琴的一個相關的代碼如下:

<dt> 
    <a href="#accordion2" aria-expanded="false" aria-controls="accordion2" class="accordion-title accordionTitle js-accordionTrigger"> 
    <img src="http://xurbia.tk/alpha/pictures/Play_button_next_stop_music_pause.png" height=40px class="pull-left"/> 
    Detox 
    <img src="http://xurbia.tk/alpha/pictures/Play_button_next_stop_music_pause.png" height=40px class="pull-right"/></a> 
</dt> 
<dd class="accordion-content accordionItem is-collapsed" id="accordion2" aria-hidden="true"> 
    <img src="http://xurbia.tk/alpha/pictures/accordian%20pictures/Detox.PNG" width="100%" height="100%" /> 
    <audio controls> 
    <source src="" type="audio/wav" width="100%"> 
     Your browser does not support the audio element. 
    </audio> 
</dd> 

完整的代碼可以在這裏找到: http://xurbia.tk/alpha/Stackoverflow.txt

下面是代碼筆,我開始製作手風琴: http://codepen.io/shardros/pen/OyJqzj

下面是網站,他們不工作: http://xurbia.tk/alpha/homebeta.html

再次感謝尋找

+1

比較2個HTML文件的源之後,我發現有一個非常小的差異。我看到的唯一區別是:廣告,視口和Meta標籤。 我很好奇,難道它與您投入的廣告有衝突嗎? – Mark

+0

謝謝你現在的作品。我認爲這些廣告沒有任何衝突。 –

回答

2

在直播現場,你的JavaScript使用模塊模式 ...這是個好寫的。

此模式使用立即調用函數表達式https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)。

這意味着,只要函數被聲明,它被調用(和執行)。

因爲你已經在你的頁面的<head>節這個腳本,它執行DOM加載之前(實際頁面加載之前)。

這意味着您的JavaScript嘗試添加事件偵聽器並操縱尚不存在的元素

爲了解決這個問題,將<script>標記出<head>,並把它作爲內的<body>標籤的最後一個元素

這將產生所調用JavaScript的效果所有必需的元素都已創建。

(你例子Codepen工作,因爲他們執行JavaScript,DOM的加載後)

1

你的問題是,在頁面加載之前,你的JS正在執行。將您的JS插入<body>元素末尾至improve page load speed是一種很好的做法。

你也可以使用一個事件在頁面加載像這樣火後:

window.onload = function(){ 
    //Page has loaded 
}