如何在新标签中打开 $state,go()
Posted
技术标签:
【中文标题】如何在新标签中打开 $state,go()【英文标题】:How to open $state,go() in new tab 【发布时间】:2017-07-26 02:22:11 【问题描述】:我正在尝试在 newtab 中打开一个状态,但无法实现。我正在使用 $state,go 函数这样做。
我也尝试了以下代码,它成功并在新标签中打开了我的网址,但浏览器阻止在新标签中打开新网址。
openurlnw = $state.href('home.forward',"url":$scope.platforms[0].url,"name":$scope.platforms[0].name,"dish_name":$scope.userSearchedDish);
window.open(openurlnw,'_blank');
我想在新标签页中打开我的状态而不让浏览器阻止它。
【问题讨论】:
您的浏览器在阻止请求时是否收到错误消息? ***.com/questions/23516289/… 没有错误,它只是显示浏览器阻止该站点打开新的弹出窗口 试试<a ng-href=" $state.href(...) " target="_blank">
。浏览器不会阻止此操作,如果您希望抓取此 URL,也会以这种方式发生。
我必须在 JS 部分本身上实现它。
【参考方案1】:
您必须在构造 url 时使用absolute
选项,然后只需使用$window.open
替换:
openurlnw = $state.href('home.forward',"url":$scope.platforms[0].url,"name":$scope.platforms[0].name,"dish_name":$scope.userSearchedDish);
与:
openurlnw = $state.href('home.forward',"url":$scope.platforms[0].url,"name":$scope.platforms[0].name,"dish_name":$scope.userSearchedDish, absolute:true);
然后:
$window.open(openurlnw,'_blank');
【讨论】:
这仍然不起作用.. 相同的错误浏览器阻止此站点打开新的弹出窗口 其实这是所有浏览器的功能。具体来说,为了避免打开多个弹出窗口,可能是在一个循环中。您应该仅在用户操作后打开弹出窗口,它不会被阻止。以上是关于如何在新标签中打开 $state,go()的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Playwright 打开新标签(例如单击按钮在新标签中打开新部分)