当前位置: 首页 > news >正文

网站 微信小程序怎么做手机版网站打开速度慢

网站 微信小程序怎么做,手机版网站打开速度慢,广东省最新新闻,免费的seo跳转询问界面如下图所示&#xff1a; 给自己挖坑的实现方式&#xff0c;最终解决方案请看最底下 思路&#xff1a;正常情况下我们有2种方式跳转外链 第一种非a标签&#xff0c;我们手动添加事件进行跳转 <div class"dingdan public-padding p-item" click&quo…

跳转询问界面如下图所示:

给自己挖坑的实现方式,最终解决方案请看最底下 

思路:正常情况下我们有2种方式跳转外链

第一种非a标签,我们手动添加事件进行跳转

<div class="dingdan public-padding p-item" @click="goOtherWebsite('https://www.baidu.com/')"><span class="iconfont icon-shezhi" style="color: #818C99;"></span><span>非a标签跳转外链</span>
</div>

 第二种a标签

<a href="https://www.baidu.com/" target="">a标签跳转外链</a>

第三种

1.分析下第一种

如果你不进入router,那你在跳转外链的时候vue框架的路由钩子不会监听到,因此我们从进router入手

a.新建一个中转询问页面linkWeb.vue,代码如下:

<template><div class="link-container"><div class="content-box"><div class="content-title">即将跳转到外部网站</div><div class="content-text">您将要访问的链接不属于本站点,请关注您的账号安全。</div><div class="content-link"><div class="external-link-href">{{urlValue}}</div></div><div class="ui button orange external-link-btn" @click="jumpUrl()">继续前往</div></div></div>
</template><script>
export default{name: 'linkWeb',data() {return {urlValue:''}},mounted() {this.urlValue=this.$route.query.target},methods:{jumpUrl() {window.open(this.urlValue)}}
}
</script>

b.修改全局钩子函数beforeEach,代码如下:

router.beforeEach((to, from, next)=>{console.log('❤❤❤全局导航路由守卫❤❤❤~~~~~~~~~~~~',to)// console.log(to.path.indexOf('https:')==-1&&to.path.indexOf('http:')==-1)if(to.path.indexOf('https:')==-1&&to.path.indexOf('http:')==-1) {next();} else { // 处理外链console.log('处理外链')let tempLinkUrl=to.pathif(tempLinkUrl.indexOf('/')!=-1&&tempLinkUrl.substr(0,1)=='/'){tempLinkUrl=tempLinkUrl.substr(1)}next({path: '/linkWeb',query:{target:tempLinkUrl}})}
})

注意,以上代码可能会报错,报错信息如:...via a navigation guard.,为解决此问题,我们需要在 Vue.use(Router)代码之前添加以下代码:

// 这段代码是为了解决跳转路由时报...via a navigation guard.的问题 start
const originalPush = Router.prototype.push
Router.prototype.push = function push (location, onResolve, onReject) {if (onResolve || onReject){return originalPush.call(this, location, onResolve, onReject)}return originalPush.call(this, location).catch(err => err)
}
// 这段代码是为了解决跳转路由时报...via a navigation guard.的问题 end

 

2.分析下第一种a标签跳转

我们需要手动禁止掉a标签默认的href属性跳转链接行为,将其转化为跳转我们自己的路由页面

关键代码如下:

mounted() {this.$nextTick(() => {document.querySelectorAll('a').forEach((item) => {item.addEventListener('click', this.linksPermissions)})})},beforeDestroy () {document.querySelectorAll('a').forEach((item) => {item.removeEventListener('click', this.linksPermissions)})},methods:{linksPermissions (e) {console.log('=== 禁止a标签跳转直接外部链接 ===', e.target.href)e.stopPropagation()e.preventDefault()this.$router.push({path: e.target.href});}

本来一切都进行的ok了,功能也都实现了,但突然发现有一个致命的问题:如果配置了{ path: '*', component: NotFound }匹配404界面,那以上全局路由守卫的代码完全就失效了,没有任何意义,跳外链的时候直接就匹配到404的路由上去了

失效了💀💀💀💀💀💀💀💀💀💀💀💀💀💀

最终解决方案如下👇👇👇👇👇👇👇👇👇👇👇👇:

进行路由动态匹配,通过“路由独享的守卫”来控制重定向到询问页面,关键代码如下:

// 将匹配以 `/http` 开头的所有路由{ path: '/http:afterUser(.*)',redirect: to => { // 带参数重定向// console.log(to)let tempLinkUrl=to.pathif(tempLinkUrl.indexOf('/')!=-1&&tempLinkUrl.substr(0,1)=='/'){tempLinkUrl=tempLinkUrl.substr(1)}// 方法接收目标路由作为参数// return 重定向的字符串路径/路径对象return { path: '/linkWeb', query: { target:tempLinkUrl } }}},

把全局导航路由守卫恢复如初:

 前端路漫漫,菜鸟还需加油冲,完结撒花!🌸🌸🌸🌸🌸🌸

http://www.yayakq.cn/news/340897/

相关文章:

  • 可以做app的网站有哪些做小程序要学什么编程
  • 15年做哪个网站能致富天津最好的网站建设
  • 四川网站建设平台重庆网站备案公司
  • 做网站多少钱_西宁君博相约皖icp阜阳网站建设
  • 邢台网站改版定制交通建设工程质量监督局网站
  • 惠州城乡建设部网站做微网站哪家好
  • 清河网站建设设计台州黄岩做网站
  • 建设六马路小学官方网站建设厅网站更改登陆密码
  • 雅虎网站优化怎么做快递网站怎么做的
  • 网站做视频的怎么赚钱wordpress主题在那个文件夹
  • 公司网站建设价格表网站建设产品说明书
  • 做生鲜管理系统的网站wordpress弱口令
  • lng企业自建站wordpress 支持中文用户名
  • 中细软网站建设泰安东平房产信息网
  • 深圳外贸网站推广公司1688网站可以做全屏吗
  • 阿里巴巴网站建设代理wordpress cdn 回源量
  • 做网站的5要素外包做网站
  • 福建建设银行网站深圳网页设计师招聘
  • 许昌购物网站开发设计工作室注册流程
  • 商城网站合作协议企业网站的建设怎么收费
  • 哪个网站做欧洲旅游攻略好怎么建设网站临汾
  • 做视频网站怎么挣钱阿里云网站开发
  • 天津做网站优化哪家好二维码的网站如何做
  • 南昌网站建设好企业网站wordpress如何做导航网站
  • wordpress 编辑器隔行网站如何做sem优化
  • 做电商网站用什么软件做网站和APP需要注册公司吗
  • 教学方面网站建设网站技术培训班
  • xml网站地图制作肇庆搞产品网站的公司
  • 帮别人做网站制作珠海做公司网站
  • 南京做网站优化的企业大连制作网站报价