2017-03-06 26 views
0

我想在newtab中打开一个状态,但无法实现它。我这样做使用$状态,去功能。

我也尝试了下面的代码,它是成功的,并在newtab中打开我的url,但浏览器阻止在新选项卡中打开新的url。

openurlnw = $state.href('home.forward',{"url":$scope.platforms[0].url,"name":$scope.platforms[0].name,"dish_name":$scope.userSearchedDish}); 
    window.open(openurlnw,'_blank'); 

我想在新标签中打开我的状态而不让浏览器阻止它。

+0

你有一个错误信息,从您的浏览器时,它会阻止请求? – DevMoutarde

+0

http://stackoverflow.com/questions/23516289/angularjs-state-open-link-in-new-tab –

+0

没有错误,它只是显示浏览器阻止此网站打开新的弹出窗口 –

回答

1

你将不得不使用absolute选项构建URL,那么就使用$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'); 
+0

这仍然无法正常工作..同一错误浏览器阻止此网站打开新的弹出式窗口 –

+1

实际上,这是所有浏览器的功能。具体而言,为了避免打开多个弹出窗口,可能会出现循环。只有在用户操作后才能打开弹出窗口,并且不会被阻止。 –

0

添加URL的哈希盈实在不行

openurlnw = '#' + $state.href('home.forward',{"url":$scope.platforms[0].url,"name":$scope.platforms[0].name,"dish_name":$scope.userSearchedDish}); 
$window.open(openurlnw,'_blank'); 
+0

这个问题是不是与哈希的东西,它的浏览器是不允许打开新的,如果我这样使用。 –