javascript - 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)
解决方案
因此,由于我们不知道您使用哪种模板,您可以使用:
<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>
这会将您重定向到新选项卡中的另一个页面。希望这对您有用,这只是一个简单的解决方法。
推荐阅读
- haproxy - 在 HAProxy 中使用带权重的 minimumconn
- python - PIP 升级权限被拒绝 Windows 10
- php - 如何在wordpress中获取页面内容?
- blockchain - 如何调用这个被委托的合约?
- azure - Cosmos DB 模拟器不工作
- symfony - Webpack,变量未定义
- php - 在 yii2 中上传文件时,我面临 saveAs() 作为 null 的问题
- f# - 为什么输出是
而不是 F# 中的 int? - node.js - Sequelize createdAt 无法修改
- python - importlib.reload() 没有将文件重新加载到 ipython 笔记本中