2017-09-12 60 views
-1

我目前正在將一個網站編寫爲一個學校項目。我的想法是將整個內容加載到一個文件中,但是如果您單擊導航中的鏈接,則只會顯示允許的內容。我用javascript做了這個,對url做出反應,所以當我點擊我的導航鏈接時,url必須改變。所以我只是犯了這樣的HREF後面#:爲什麼與#的鏈接不能在Firefox和Safari瀏覽器中使用?

<nav id="nav"> 
     <a id="ict" href="index.html#ict" onclick="refresher();" >Informatik</a> 
     <a id="mmt" href="index.html#mmt" onclick="refresher();" >Multimediatechnik</a> 
     <a id="gundd" href="index.html#gundd" onclick="refresher();" >Gestaltung und Design</a> 
     <a id="daw" href="index.html#daw" onclick="refresher();" >Digital Artwork Gallery</a> 
     <a id="about" href="index.html#about" onclick="refresher();" >&Uuml;ber mich</a> 
    </nav> 

能正常工作的谷歌Chrome和Micrisoft邊緣,但如果你使用Firefox或Safari在URL中的#不會改變。

我不認爲JS是這裏的問題了,但是我不是100%肯定,所以這裏是onclick_function:

function refresher(){ 
    location.reload() 
} 

謝謝您的幫助!

+1

隨着你有這種設置的方式,我不知道你爲什麼使用location.reload。你不應該只是顯示/隱藏內容?內容已在頁面上,無需重新加載,只需呈現即可。 –

+0

但我怎麼才能讓js重新加載?現在它看起來像這樣: 'document.getElementById('daw_gal')。style.display =「block」;'但這不會發生,除非js被重新加載。我對嗎? @kevin –

+0

js不需要重新加載。您只需運行需要在您所調用的函數中運行的代碼即可。 –

回答

1

他們工作。但是,在正確滾動頁面之後,refresher會運行並將頁面滾動到-300。確定您想要的行爲(hrefrefresher函數)並使用其中之一,但不能同時使用這兩種行爲。

+0

謝謝。我用scrollTop刪除了這個部分,但我仍然遇到這個問題,即在Firefox中url不會改變,但是在chrome中是doeas。我不能刪除整個功能,因爲我需要它爲js重新加載,所以我不需要的所有容器都得到'display:none' –

+0

@NicolasLang不,它不只是關於'scrollTop'的單一行,您需要刪除整個'onclick'和相關的函數或'href'因爲兩者互相爭鬥。你不能擁有兩個。爲什麼你需要刷新頁面? –

+0

@NicolasLang我認爲你真正的問題是你解決更大問題的方法是錯誤的方法。你說了一些關於確保元素不會顯示「display:none」的內容,但重新加載頁面並不是唯一確保這一點的方法。您應該編輯您的問題並解釋您正在使用的較大場景。 –

相關問題