最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue路由跳轉(zhuǎn)打開新窗口(window.open())和關(guān)閉窗口(window.close())

 更新時(shí)間:2023年04月13日 15:37:32   作者:小太陽...  
這篇文章主要介紹了vue路由跳轉(zhuǎn)打開新窗口(window.open())和關(guān)閉窗口(window.close())問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue路由跳轉(zhuǎn)打開新窗口和關(guān)閉窗口

需求:從當(dāng)前頁面跳轉(zhuǎn)到其他頁面時(shí),打開一個(gè)新窗口

比如:點(diǎn)擊頁面上的用戶反饋,打開用戶反饋的新頁面,要使用編程式導(dǎo)航

編程式導(dǎo)航

使用路由對(duì)象的resolve的方法解析路由,可以得到location、router、href等目標(biāo)路由的信息,只要得到href就可以使用window.open打開新窗口了。

代碼如下:

? ? // 路由跳轉(zhuǎn)新界面
? ? userFeedback() {
? ? ? // this.$router.push({ path: '/feedback' });
? ? ? 用push,也能實(shí)現(xiàn)跳轉(zhuǎn),但是不能打開新頁面。
? ? ? const { href } = this.$router.resolve({
? ? ? ? path: '/feedback'
? ? ? });
? ? ? window.open(href, '_blank');
? ? },

如果是復(fù)雜的需要帶參數(shù)跳轉(zhuǎn)的路由,是以下寫法,用query攜帶參數(shù)

? <template slot-scope="scope">
? ? <el-button
? ? ? size="small"
? ? ? @click.stop="watchDetail(scope.row)">詳情</el-button>
? </template>
?watchDetail(row) {
? ? const { href } = this.$router.resolve({
? ? ? path: `/answerSituation`,
? ? ? query: {
? ? ? ? id: row.id,
? ? ? ? paperName: this.paperName,
? ? ? ? name: row.name,
? ? ? ? examScore: row.examScore,
? ? ? ? answersTime: row.answersTime
? ? ? }
? ? });
? ? window.open(href, '_blank');
? }

window.open( )方法

定義和用法

open() 方法用于打開一個(gè)新的瀏覽器窗口或查找一個(gè)已命名的窗口。

語法

window.open(URL,name,specs,replace)

第一個(gè)參數(shù)URL 

可選。打開指定的頁面的URL。如果沒有指定URL,打開一個(gè)新的空白窗口

第二個(gè)參數(shù)name

可選。指定target屬性或窗口的名稱。支持以下值:

  • _blank - 在新窗口顯示目標(biāo)網(wǎng)頁。這是默認(rèn)
  • _self - 在當(dāng)前窗口顯示目標(biāo)網(wǎng)頁
  • _top - 框架網(wǎng)頁中在上部窗口中顯示目標(biāo)網(wǎng)頁(不常用)

第三個(gè)參數(shù)

可選參數(shù),設(shè)置窗口參數(shù),各參數(shù)用逗號(hào)隔開。

關(guān)閉窗口 window.close()

用法

window.close(); ? //關(guān)閉本窗口
或者
<窗口對(duì)象>.close(); ? //關(guān)閉指定的窗口

例子:關(guān)閉新窗口

?var mywin=window.open('http://www.xxx.com'); //將新打的窗口對(duì)象,存儲(chǔ)在變量mywin中
?mywin.close();

vue路由跳轉(zhuǎn)打開新窗口(被瀏覽器攔截)

今天做了一個(gè)功能是點(diǎn)擊按鈕路由跳轉(zhuǎn)打開新的窗口頁面

第一種方法

<router-link target="_blank" :to="{path:'/FundManger/FundProductMoney',
query:{managerId:fundcode}}></router-link>"

第二種方法

? <a @click="getGetMyPortfolioById(scope.row) ">查看</a>

?getGetMyPortfolioById(vals) {?
? ? getMyPortfolioById({

? ? }).then(response = >{?
? ? ? ? const routerdata = this.$router.resolve({?
? ? ? ? ? ? ? ? ? name: '組合分析以及組合持倉',?
? ? ? ? ? ? ? ? ? params: { managerId: vals.fundCode }?
? ? ? ? })?
? ? ? ? const newhref = routerdata.href + '?managerId=' + vals.fundCode?
? ? ? ? ?window.open(newhref, '_blank')?
? ? })
?}?

當(dāng)我們用到第二種方法時(shí)候,是觸發(fā)事件請(qǐng)求接口根據(jù)條件去判斷在進(jìn)行路由跳轉(zhuǎn),這個(gè)時(shí)候就會(huì)遇到瀏覽器被攔截的問題

在接口請(qǐng)求的回調(diào)函數(shù)中 需要使用window.open()打開新頁面,但是等接口請(qǐng)求成功之后,window.open()打開新頁面總是被瀏覽器攔截,原因大概是,放在請(qǐng)求回調(diào)函數(shù)中的操作,被瀏覽器認(rèn)為不是用戶主動(dòng)觸發(fā)的事件,并且延遲1000ms ,被認(rèn)為有可能是廣告,于是被攔截

解決的方法:

在接口請(qǐng)求之前先打開一個(gè)空的頁面

let tempPage=window.open('' ", _blank');

然后在回調(diào)函數(shù)中,

tempPage.location=url;

第二種方法(改良版) 

? <a @click="getGetMyPortfolioById(scope.row) ">查看</a>

? getGetMyPortfolioById(vals) {
? ? ? const tempPage = window.open('', '_blank')
?? ? ?getMyPortfolioById({}).then(response = >{
?? ??? ??? ? const routerdata = this.$router.resolve({
? ? ? ? ?? ? name: '組合分析以及組合持倉',
? ? ? ? ??? ? ?? ?params: {
? ? ? ? ? ? ? ??? ??? ?managerId: vals.fundCode
? ? ? ? ??? ??? ?}
? ? ? ?? ??? ? })
? ? ??? ??? ?const newhref = routerdata.href + '?managerId=' + vals.fundCode
? ? ??? ??? ?tempPage.location = newhref
?? ? ?})
?}

總結(jié)      

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3使用組合式API實(shí)現(xiàn)代碼的邏輯復(fù)用

    Vue3使用組合式API實(shí)現(xiàn)代碼的邏輯復(fù)用

    在 Vue 3 的生態(tài)中,組合式 API(Composition API)引入了全新的方式來構(gòu)建組件,使得邏輯復(fù)用變得更加簡(jiǎn)單和靈活,在傳統(tǒng)的選項(xiàng)API中,邏輯復(fù)用通常依賴于混入和高階組件,本文將通過示例,帶你了解如何在 Vue 3 中使用組合式 API 來實(shí)現(xiàn)代碼的邏輯復(fù)用
    2025-01-01
  • 一文詳析vue3?Props的用法(父?jìng)髯?

    一文詳析vue3?Props的用法(父?jìng)髯?

    這篇文章主要給大家介紹了關(guān)于vue3?Props的用法(父?jìng)髯?的相關(guān)資料,在Vue3中Props用于組件間數(shù)據(jù)傳遞,允許類型檢查和默認(rèn)值設(shè)置,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • 在Vue中使用axios請(qǐng)求攔截的實(shí)現(xiàn)方法

    在Vue中使用axios請(qǐng)求攔截的實(shí)現(xiàn)方法

    這篇文章主要介紹了在Vue中使用axios請(qǐng)求攔截,需要的朋友可以參考下
    2018-10-10
  • vuex實(shí)現(xiàn)簡(jiǎn)易計(jì)數(shù)器

    vuex實(shí)現(xiàn)簡(jiǎn)易計(jì)數(shù)器

    這篇文章主要為大家詳細(xì)介紹了vuex實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)數(shù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • vue實(shí)現(xiàn)主題切換的多種思路分享

    vue實(shí)現(xiàn)主題切換的多種思路分享

    最近一段時(shí)間,一直在做主題方面的工作。我們的主題,并不是簡(jiǎn)單切換一下顏色,或者排版變化這些,而是變化比較大的主題。比如說:主題1和主題2看起來完全不一樣,功能甚至都不一樣。這樣,通過切換css就無法做到了,因此我思考良久,使用了如下2種方法
    2021-06-06
  • vue3封裝自己的分頁組件

    vue3封裝自己的分頁組件

    這篇文章主要為大家詳細(xì)介紹了vue3封裝自己的分頁組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue之如何配置默認(rèn)顯示頁面和默認(rèn)路由

    vue之如何配置默認(rèn)顯示頁面和默認(rèn)路由

    這篇文章主要介紹了vue之如何配置默認(rèn)顯示頁面和默認(rèn)路由問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue多次打包后出現(xiàn)瀏覽器緩存的問題及解決

    vue多次打包后出現(xiàn)瀏覽器緩存的問題及解決

    這篇文章主要介紹了vue多次打包后出現(xiàn)瀏覽器緩存的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解vue路由

    詳解vue路由

    這篇文章主要介紹了vue路由的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí)vue路由知識(shí),感興趣的朋友可以了解下
    2020-08-08
  • 關(guān)于Vue?"__ob__:Observer"屬性的解決方案詳析

    關(guān)于Vue?"__ob__:Observer"屬性的解決方案詳析

    在操作數(shù)據(jù)的時(shí)候發(fā)現(xiàn),__ob__: Observer這個(gè)屬性出現(xiàn)之后,如果單獨(dú)拿數(shù)據(jù)的值,就會(huì)返回undefined,下面這篇文章主要給大家介紹了關(guān)于Vue?"__ob__:Observer"屬性的解決方案,需要的朋友可以參考下
    2022-11-11

最新評(píng)論

临清市| 黔西县| 永新县| 蓝山县| 潼关县| 正阳县| 洞头县| 河东区| 海南省| 申扎县| 高青县| 英吉沙县| 建昌县| 乐清市| 香河县| 天镇县| 东源县| 岚皋县| 黑河市| 射阳县| 大丰市| 报价| 葫芦岛市| 浦东新区| 饶阳县| 浮梁县| 洛扎县| 景洪市| 吕梁市| 赤峰市| 深水埗区| 洱源县| 宕昌县| 延边| 怀安县| 上饶市| 高平市| 东港市| 建水县| 毕节市| 乌苏市|