要实现此类菜单,首先您需要的是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。