要實現此類菜單,首先您需要的是CSS文件,例如links_style.css,以定義鏈接的樣式。接下來是JavaScript文件NAV.J。在文件nav.js中,首先我們聲明了三個數組。一個稱為“鏈接”的數組包括鏈接的名稱。另一個數組稱為“ links_text”,由鏈接的文本組成(例如鍊接1)。前者將用於與此文件進行比較。使用鏈接文件中的標題在鏈接數組中的各個元素命名,不包括擴展名(即,如果第一個鏈接將您帶到index.htm,則將其命名為索引)。第三個數組稱為“ links_url”,包括鏈接將帶動用戶的URL。現在,我們想要的是在沒有擴展名的情況下比較到當前頁面的文件名中的每個元素。然後,我們將相應地分配鏈接樣式,以及您決定添加到鏈接文本中以突出顯示活動頁面的任何額外文本或圖像。讓LOC為比較字符串。 LOC可以找到:var loc = string(this.location); loc = loc.split(“/”); loc = loc [loc.length-1] .split(“。”); loc = loc [loc.length-2];因此,如果當前頁面為https://www.sitepoint.com/index.htm,則LOC將為索引。現在,我們將其與數組鏈接中的每個元素進行比較。該數組和LOC的第一個元素相等,因此我們以以下方式編寫此鏈接。 document.write('
');這就是您的動態菜單!您必須在所有頁面中放置的代碼為:將此代碼放置在需要出現在頁面上的何處。您需要的另一個代碼是,必須放置在HTML頁面的部分中。因此,列表1 nav.js是: / *鏈接詳細信息 * / var links = new Array(“ link1”,“ link2”,“ link3”); var links_text = new Array(“鏈接1”,“鏈接2”,“鏈接3”); var links_url = new array(“ link1.htm”,“ link2.htm”,“ link3.htm”); / *解析位置 */ var loc = string(this.location); loc = loc.split(“/”); loc = loc [loc.length-1] .split(“。”); loc = loc [loc.length-2]; / *菜單生成函數 */函數dyn_menu_gen(){for(var i = 0; i 'links_text [i]' '); } document.write('
var jsondata ='[{“ text”:“ home”},{“ text”:“ of” about“},{“ text”:“ contact”}]'; var menuitems = json.parse(jsondata); var Menu = document.getElementById('菜單');
for(var i = 0; i var menuitem = document.createelement('li'); menuitem.innerhtml = menuitems [i] .text; 菜單。AppendChild(menuitem); } 在此示例中,“ jsondata”是菜單項對象的json字符串,“菜單”是要添加菜單項的菜單的ID。
fetch('https://example.com/menuitems') 。 。然後(data => { var Menu = document.getElementById('菜單');
for(var i = 0; i var menuitem = document.createelement('li'); menuitem.innerhtml = data [i] .text; 菜單。AppendChild(menuitem); } }); 在此示例中,'https://example.com/menuitems'是返回菜單項數據的服務器端點的URL。