2016-03-02 70 views
0

我在Javascript中有一個函數,用於更改WordPress管理器中顯示的一些文本。以下代碼將向h1標記添加文本,並向某些定位標記添加display none。我遇到的問題是有1-2秒鐘,它顯示舊文本和鏈接正在顯示。我試圖找出是否有辦法消除這種延遲,因此用戶不知道文本正在改變。JavaScript - 消除文本替換的延遲

var replaceText = function() { 
    var Wrapper = document.getElementById("wrap"); 

    var Header = Wrapper.getElementsByTagName("h1"); 
    Header[0].innerHTML = "Backup and Restore"; 

    var topLinks = Wrapper.getElementsByTagName("a"); 
    for(var i = 1; i < 10; i++) { 
     topLinks[i].style.display = "none"; 
    } 

} 

function init(){ 
    replaceText(); 
} 

window.onload = init; 
+0

如果你不關心IE <9',那麼使用'DOMContentLoaded'事件來做這樣的DOM操作..或者使用'css' =>'#wrap a {display:none} – Rayon

回答

0

我們無法消除它們之間的延遲。

加載窗口後,您正在調用init函數。這意味着你的html和css首先被加載,直到那時你試圖從javascript隱藏的元素不會被隱藏。所以,你可以堅持使用css解決方案來隱藏它們,然後當你想讓它們顯示時,你可以使用javascript。