熟悉 SEO 的人都知道,网站目录深度不宜超过3层,也就是说,任何页面不超过4层深度链接。为了让访客尽快到达目标页面,网站上就必须提供导航菜单(Navigation Menu),最好是多级导航菜单。举例说明:假如你的 Joomla 网站有一个“下载”栏目,里面又分为“免费下载”和“付费下载”两个子类别。如果只做单级导航菜单,访客必须点击“下载”,再点击“免费下载”,才能看到他想要的文件列表。如果做成多级导航菜单,鼠标指向“下载”这个顶级菜单时,就自动弹出了次级菜单“免费下载”和“付费下载”,访客直接点击“免费下载”就能看到文件列表。你喜欢哪一个模式?

我想没有人不喜欢多级菜单的,因此绝大多数  Joomla 商业模板都设计了多级弹出菜单。不过,只有强迫访客选择次级菜单链接,才能达到减少页面链接深度的目的。也就是说,第一级菜单项目不能是链接形式。那么,创建多级菜单时,如何让第一级(顶级)菜单不能点击?本文就来解决这个问题。

 

Multi-level Slide Menu
Multi-level Slide Menu

 

在 Joomla 后台创建多级菜单并不难。每次创建新的菜单项目时,页面底部都有一个选项叫“上层项目”, 默认上层是“顶部”,也就是说,默认创建的都是顶级导航菜单;如果你选择的“上层项目”是某个已经存在的菜单项目,那么当前菜单项目将成为该项目的次级菜单项目。如此这般,就可以创建出多级菜单来。Joomla 本身没有对多级菜单的深度进行限制,理论上你可以创建无限级别深度的导航菜单,不过,一般建议不要超过3层。

还是借用前面的例子来说明:创建两个次级菜单,分别指向“免费下载”和“付费下载”并不难,因为你可以从网站前台找到这两个栏目的 URL,然后在后台创建菜单项目时选择“外部链接”类型,分别填写各自对应的 URL 即可。难的是,顶级的“下载”该选择什么类型?

有人说,选择“分隔符”(Place holder)类型。这个方法我试过,“分隔符”类型的菜单项目确实不会指向任何链接,也不能被点击。但是,这个类型的菜单项目由于最终生成的 HTML 代码中没有链接标记(a 元素),导致无法套用针对导航菜单的 CSS 样式。如果是:如果顶级菜单项目中既有“分隔符”类型,又有常规类型,则这些顶级菜单项目样式不统一;如果顶级都是“分隔符”,则导致顶级与次级样式不协调!

有一个笨办法就是接着修改模板的 CSS 文件,使得“分隔符”类型的菜单项目也能拥有同级别正常类型菜单项目一样的外观。但是,这个方法实在是太笨了!Joomla 的优势就是“简单易用”,如果我们总是叫用户去修改源文件,甚至让他们学习 CSS 语法,就背离了这个宗旨。

今天介绍三种最简便的方法,使得无需修改任何 CSS 代码就能立即实现“顶级菜单项目无法点击”:

第一招:JavaScript

在创建顶级菜单项目时,选择其类型为“外部链接”,然后在下一页的 URL 一栏填写:

javascript:void(0)

就是这样,没有 http,也没有 www,只需填写上面这个简单的代码进去就行。保存之后,你在前台刷新页面然后测试,就会发现该菜单项目点击时没有任何反应。

第二招:# 符号

在创建顶级菜单项目时,选择其类型为“外部链接”,然后在下一页的 URL 一栏只填写一个“#”符号。没错,就一个字符,英文、半角。

URL 里面的 # 符号本来代表当前页面上的一个“锚位”(Anchor),但是我们只给出了 # 符号,而没有给出锚链目标,因此点击该菜单项目时,浏览器不会转向其它页面,而是在当前页面上试图寻找对应的锚位,实际上是找不到这个“空”锚位的,那么仍然停留在当前页面。这也就相当于“点击顶级菜单项目无反应”。

使用这个方法有一点要注意:如果你的网站上安装了 Artio JoomSEF,就会发现这个顶级菜单项目最终指向了网站首页,而不是“当前页面”。这是由于 JoomSEF 自带的 SEF 插件其默认设置不合适(sh404SEF 就没有这个问题)。

解决办法是:进入 Joomla 1.5.x 后台,点击顶部(后台这个顶部导航菜单其第一级就无法点击)的“扩展 -> 插件管理”,找到 JoomSEF 这个插件,然后将其 Set page base href value 参数选择为“Yes - always use full SEO URL”即可,如下图所示:

 

Artio JoomSEF plugin setting
Artio JoomSEF plugin setting

 

第三招:空链接

在创建顶级菜单项目时,选择其类型为“外部链接”,然后在下一页的 URL 一栏什么也不填写,直接留空。这样创建的菜单项目就没有 URL 目标,因此点击时浏览器也不知道该打开哪个页面,只好继续停留在当前页面。

 

在以上三个方案中,我最欣赏最后一个方法,操作最简单。

如果你的 Joomla 网站正好需要多级弹出菜单,那么建议你选择上述方法的一种来创建顶级菜单项目。如果你想测试一下,那么 Joomla 1.5 自带的 JA Purity 模板就有滑动菜单功能,你不妨试一试吧。