Angular js $window.open 无法在移动浏览器的 .success 中运行
Angular js $window.open not working in .success for mobile browser
我在使用 Angularjs 时遇到了问题。 $window.open(/somewhere) 函数在 pc 浏览器和移动浏览器上完美运行。但有 1 种情况它不起作用。请帮忙看下面:
$window.open("https://www.myurl.com"); // OUTSIDE OF REQUEST - no problems
$https({
type: "GET",
url: "backendURL",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$window.open("https://www.myurl.com"); //This doesn't work.
},
error: function(msg) {
//alert(error);
}
});
请注意,这只发生在移动浏览器上:chrome 和 safari(我没有为其他浏览器测试)所以我想也许有人对此有经验。请大家帮忙指教。
谢谢...
我在网上找到了这个解决方案,希望对你有所帮助。在回调函数之前执行 var win = window.open();
,然后在 .success
中,通过执行 win.location = url;
更改 url。这应该可以解决问题。
我认为首要问题与 "this" scope in JavaScript. If you are able to use arrow functionsES6 版本的 JavaScript 有关,你可以简单地做
success: (msg)=>{
$window.open("https://www.myurl.com");
}
我想大多数人不会有这个选项。在这种情况下,您可以执行类似于 Yabin 建议的操作:
//somewhere else in code.
var scopedWindow = $window;
//
success: function(msg){
scopedWindow.open("https://www.myurl.com");
}
我在使用 Angularjs 时遇到了问题。 $window.open(/somewhere) 函数在 pc 浏览器和移动浏览器上完美运行。但有 1 种情况它不起作用。请帮忙看下面:
$window.open("https://www.myurl.com"); // OUTSIDE OF REQUEST - no problems
$https({
type: "GET",
url: "backendURL",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$window.open("https://www.myurl.com"); //This doesn't work.
},
error: function(msg) {
//alert(error);
}
});
请注意,这只发生在移动浏览器上:chrome 和 safari(我没有为其他浏览器测试)所以我想也许有人对此有经验。请大家帮忙指教。
谢谢...
我在网上找到了这个解决方案,希望对你有所帮助。在回调函数之前执行 var win = window.open();
,然后在 .success
中,通过执行 win.location = url;
更改 url。这应该可以解决问题。
我认为首要问题与 "this" scope in JavaScript. If you are able to use arrow functionsES6 版本的 JavaScript 有关,你可以简单地做
success: (msg)=>{
$window.open("https://www.myurl.com");
}
我想大多数人不会有这个选项。在这种情况下,您可以执行类似于 Yabin 建议的操作:
//somewhere else in code.
var scopedWindow = $window;
//
success: function(msg){
scopedWindow.open("https://www.myurl.com");
}