【发布时间】:2017-06-16 19:17:22
【问题描述】:
我的 ModX 网站上有一个页面,顶部包含几个页面跳转链接,用于在页面下方的一些文章。这是每个人的 HTML:
<a class="jump" href="#article1">Article 1</a><br />
<a class="jump" href="#article2">Article 2</a><br />
<!-- and so on... -->
之前,链接在 IE 11 中根本不起作用,所以我在这里使用 JavaScript 检查访问者是否使用 IE 并执行页面跳转:
var url = 'http://mywebsite/mywebpage';
$('a.jump').on('click', function(evt) {
evt.preventDefault();
var useragent = window.navigator.userAgent;
if (useragent.indexOf("Trident") > -1 || useragent.indexOf("Edge") > -1) { // IE, Edge
var href = $(this).attr('href');
window.location.assign(url + href);
} else { // anything else
var href = $(this).attr('href');
href = href.substring(1, href.length);
window.location.assign('other/url#' + href);
}
});
我不确定这是否是检查 IE 的最佳方法,但目前它似乎可以正常工作。
这在 Chrome 和 Firefox 中运行良好,但如果我在 IE 中单击其中一个页面跳转,它会正确跳转,但经过一秒钟后它会重定向到我网站的主页。
我正在使用 ModX Revolution 2.5.7。
编辑:Microsoft Edge 似乎直接重定向到主页。 编辑 2:更新 JS 代码以正确检查 Edge。
【问题讨论】:
-
添加
evt.preventDefault() -
我之前有它,但它没有影响任何东西,所以我把它删除了。我刚刚又试了一次,结果还是一样。
-
在
onClick函数的末尾添加return false怎么样? -
@loelsonk 恐怕这也行不通。
标签: javascript jquery modx-revolution