我一直在尝试将Javascript:void(0)添加到我的magento网站的导航栏很长一段时间。 我阅读了很多关于这个主题的文章,几乎所有文章都说我应该编辑
/app/code/core/Mage/Catalog/Block/Navigation.php或将其复制到本地文件夹结束编辑。
这是我遵循的流行方式之一;
To remove url, href functionality of the top menu categories, you can take the following steps:
Create some folder as this path: app/code/local/Mage/Catalog/Block
Copy file Navigation.php from app/code/core/Mage/Catalog/Block to
app/code/local/Mage/Catalog/Block
Go to function _renderCategoryMenuItemHtml()
Replace this code
$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';
with this code
if($category->getLevel()== 2 && $hasActiveChildren) {
$html[] = '<a href="[removed]void(0);"'.$linkClass.'>';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';
} else {
$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';
}
但它对我不起作用。奇怪的是,即使我删除了/app/code/core/Mage/Catalog/Block/Navigation.php,导航菜单也能正常工作。如果得到工作代码我不知道。
也许你有一个可以帮助我的想法。我只想将Javascript:void(0)放到导航菜单中。
答案 0 :(得分:0)
我觉得这是缓存或Magento编译器的问题。我建议你从magento admin执行以下步骤。
转到admin->System->Cache Management
并清除/清除所有缓存
转到admin->System->Tools->Compilation
。检查编译是否已启用然后将其禁用并再次清除缓存并运行编译过程
答案 1 :(得分:0)
我也想解决这个问题,我认为问题在于您链接的代码仅适用于1.7而不适用于1.9?
我提出的解决方案
将Topmenu.php
从app\code\core\Mage\Page\Block\Html
复制到app\code\local\Mage\Page\Block\Html
替换第131行:
$html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
$html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
. $this->escapeHtml($child->getName()) . '</span></a>';
到
if ($child->hasChildren()) {
$html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
$html .= '<a href=\'javascript:void(0);\'><span>'
. $this->escapeHtml($child->getName()) . '</span></a>';
}
else{
$html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
$html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>'
. $this->escapeHtml($child->getName()) . '</span></a>';
}
希望这有帮助。