有一个页面在我的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革命2.5.7。
编辑: Microsoft似乎直接指向主页。编辑2:更新的JS代码,以检查边缘正确。
发布于 2017-06-23 14:22:20
有一个页面在我的ModX网站,其中包括两个页面跳转链接在顶部的几篇文章,是进一步下降的网页。
我不太明白你想达到什么目的。如果你想让访问者真正打开这些链接并阅读它们,为什么不直接插入真正的链接并使这个基本的html内容-浏览链接-工作呢?
如果这些文章已经作为次要内容出现在页面上(全部或部分),并且您只想通过“跳转”吸引访问者的注意力,而不打开新的选项卡或加载其他页面,那么除了<a href='#article1'></a>之外,还可以使用<a name="#article1"></a>来指示当前页面上应该滚动访问者的位置。
您给出的代码也有几个问题。
首先,检查IE/Edge版本的方式。正如在这个answer中所指出的,“三叉戟”现在不是边缘用户代理字符串的一部分。所以,如果你想要瞄准边缘,你的病情甚至不会触发。
另外,您不需要这样做:(url + href).toString(),因为这两个变量都已经是string类型了。只有url + href。
此外,它感觉好像有另一个脚本在页面上处理点击链接。我认为我们需要链接到您的页面,以检查发生了什么。所以,如果你不介意分享链接,我们可以更深入地检查。
发布于 2017-06-16 19:20:34
也许evt.preventDefault()就在click函数中?
https://stackoverflow.com/questions/44596483
复制相似问题