全局Ajax如何排除某个链接

发布于 / 网页制作 / 1 条评论

#全局Ajax排除某个链接#如何让某个链接不使用Ajax加载#

因为博客使用了某套主题的全局AJAX加载,造成了无论是页脚还是文章的外链,全都是Ajax加载

这就带来一个问题,一些设置了_blank的外链链接无法使用新标签页打开:

无法从新标签页打开外链

你要知道这样的话,得多影响用户体验啊,比如说一个教程引用了一个文档外链,用户点一下在本页面加载,还得退回去看你的文章,想想就蛋疼

由于我对JS的学习只停留在如何使用上,百度无果后问群里,某群员提供了解决方法:

让_blank的链接点击之后打不开无反应的JS:

$("a[target=_blank]").click(function( event ) {
  event.preventDefault();
});

让 _blank的链接点击之后 不调用Ajax打开:

$("a[target=_blank]").click(function( event ) {
  event.preventDefault();
  window.open(event.currentTarget.href, '', '')
});

原理其实就是替换 _blank 为window.open方法打开,这样一来就不会再调用ajax了

如何使用:随便放到一个当前在使用的JS文件里就行了

enjoy she work ! 🙂

但是过了几天之后我发现一个问题,假如说你从我的主页点开,然后进入我的一篇文章中,由于文章页面是Ajax打开的,加载的js不会重复执行(关于Ajax的作用可百度),导致了这个替换功能无法执行,也就是说只有直接打开我的文章,这个替换_blank的js才会生效

思考解决:

1.在数据库中批量替换 _blank为 window.open,但是这样做的话是否会影响浏览器兼容问题?是否会有浏览器会拦截弹出窗口?

2.是否有一种方法可以标记元素,使其不调用Ajax?

目前我还没有头绪,因此关闭了全站Ajax,希望有大佬能够在评论区指点一下!

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
转载原创文章请注明,转载自: 沧水的博客 » 全局Ajax如何排除某个链接
  1. 风有点儿大

    very enjoy !