首页 > 解决方案 > href没有链接到外部网址

问题描述

我下载了一个设计很奇怪的单页机模板。所有超链接都链接到页面上的部分,并且使用 data-link="" 参数。

现在我尝试将其中一个菜单项链接到带有目标 _blank 的外部 url,但随后它正在寻找我在页面本身上定义的 url(因此它正在寻找不存在的部分,例如 www.example. com/ http://google.nl )

链接在 href 元素上有一个值,如下所示:

href="/home/" or href="/menu/"

<ul id="w1" class="navbar-nav nav">
    <li><a id="navhome" class="" href="/home" title="Home" data-link="home">Home</a></li>
    <li><a id="navmenu" class="" href="/menu" title="Menu" data-link="menu">Menu</a></li>

所以这不起作用(也没有目标_blank:

<li><a id="navorder" href="http://order.company.com" target="_blank">Order Now</a></li>

这里使用了什么技术?以及如何将新菜单项链接到外部页面?

编辑:

我找到了处理 href 的代码:

$(".menu ul li a").not('.social-link').click(function(e) {
    e.preventDefault();
    $(".menu ul li a").removeClass("active");

    tabTarget = $(this).data('link');
    animateByMenu = true;

    var hash = '#' + tabTarget;
    var url = $(this).prop('href');
    var menuItem = $(this).data('link');
    $(".menu li a[data-link=" + menuItem + "]").addClass("active");

    if (url) {
        var top = $(hash).offset().top - 60;
        $('html, body').animate({
            scrollTop: top
        }, 600, function(){

        });
        history.pushState('', '', url);
        $('.navbar-toggle:visible').click();
    }

    return false;

});

当我单击链接时,它在控制台中给了我以下错误:

main.js:109 Uncaught TypeError: Cannot read property 'top' of undefined
at HTMLAnchorElement.<anonymous> (main.js:109)
at HTMLAnchorElement.dispatch (jquery.min.js:3)
at HTMLAnchorElement.r.handle (jquery.min.js:3)

标签: javascriptjqueryhtmlcss

解决方案


因此,由于我们不知道您使用哪种模板,您可以使用:

<ul id="w1" class="navbar-nav nav">
    <li><a id="navhome" class="" href="/home" title="Home" data-link="home">Home</a></li>
    <li><a onclick="window.open('http://www.google.com', '_blank')">Menu</a></li>
</ul>

这会将您重定向到新选项卡中的另一个页面。希望这对您有用,这只是一个简单的解决方法。


推荐阅读