Window.open() 打开通过 json 文件传递的 url?
Window.open() to open a url passed through a json file?
我正在为 android 和 ios 构建离子应用程序,使用 html 代码。我正在尝试从存储在服务器上的字段名称为 link 的 json 文件中调用 link,但是 window.open() 无法识别这个,有人可以吗请帮忙?
<a onClick="window.open({{item.link}}, '_blank', 'location=yes')">
尝试使用 href,但他们只在浏览器中打开 link,在测试时不允许用户退出,他们必须完全退出应用程序才能返回。
如有任何帮助,我们将不胜感激。它似乎只发生在 ios 上。
已排序
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
你应该使用 href
和 target
:
<a href="{{item.link}}" target="_blank">
根据 AngularJS docs,您实际上应该防止 link 在加载 AngularJS 之前对用户可用,如下所示:
<a ng-href="{{item.link}}" target="_blank">
或者,如果您真的想使用 onclick
,则添加“javascript:”并将 link 括在单引号中:
<a href="#" onclick="javascript:window.open('{{item.link}}', '_blank', 'location=yes')">
使用插件强制“目标”links 在外部浏览器中打开
当 link 在 WebView 中打开时,用户无法返回到之前的视图。
This article 阐明了这一点:
Luckily there's a cordova.inAppBrowser
plug-in that encapsulates this hack in an easy to add plug-in. This is a much simpler solution that doesn't require hacking the generated cordova WebView wrapper code that can be overwritten by updates. The plug-in basically provides the ability for window.open()
to open a new window in the external browser.
You can add this plug in with:
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
in your Cordova project or – if you're using Visual Studio's Cordova Tools by adding it from the Visual Studio add-in Configuration page.
The plugin basically replaces the window.open()
function inside of the WebView control and so causes a new instance of the device browser to open – on iOS that'd be Safari.
我不熟悉 IONIC,但我很确定 Ionic 使用 angularjs 所以 ....
以下适合我!
//关注HTML
<div>
<div ng-app="sampleApp" ng-controller="MainCtrl">
<ion-content style="display:block">
<a href="" ng-click="openUrl(item.link)">Open in new</a>
</ion-content>
</div>
</div>
和以下控制器
var SampleApp;
(function (SampleApp) {
var app = angular.module('sampleApp', ['ionic']);
app.controller('MainCtrl', function ($scope) {
$scope.item = {
link: 'http://example.com'
}
$scope.openUrl = function(url){
window.open(url, '_blank', 'location=yes')
}
});
})(SampleApp || (SampleApp = {}));
JS-Fiddle: http://jsfiddle.net/daveamit/r2c8dfhx/1/
希望对您有所帮助!
已排序
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
对我来说
<a href="{{item.url}}" onclick="window.open(this.href,'_self');">
{{menu.title}}
</a>
工作完美。
'location=yes' 产生错误,因为-
2 001637 error Uncaught ReferenceError: yes is not defined, http://localhost:8100/?ionicplatform=android, Line: 1
现在运行良好。
我正在为 android 和 ios 构建离子应用程序,使用 html 代码。我正在尝试从存储在服务器上的字段名称为 link 的 json 文件中调用 link,但是 window.open() 无法识别这个,有人可以吗请帮忙?
<a onClick="window.open({{item.link}}, '_blank', 'location=yes')">
尝试使用 href,但他们只在浏览器中打开 link,在测试时不允许用户退出,他们必须完全退出应用程序才能返回。
如有任何帮助,我们将不胜感激。它似乎只发生在 ios 上。
已排序
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
你应该使用 href
和 target
:
<a href="{{item.link}}" target="_blank">
根据 AngularJS docs,您实际上应该防止 link 在加载 AngularJS 之前对用户可用,如下所示:
<a ng-href="{{item.link}}" target="_blank">
或者,如果您真的想使用 onclick
,则添加“javascript:”并将 link 括在单引号中:
<a href="#" onclick="javascript:window.open('{{item.link}}', '_blank', 'location=yes')">
使用插件强制“目标”links 在外部浏览器中打开
当 link 在 WebView 中打开时,用户无法返回到之前的视图。
This article 阐明了这一点:
Luckily there's a
cordova.inAppBrowser
plug-in that encapsulates this hack in an easy to add plug-in. This is a much simpler solution that doesn't require hacking the generated cordova WebView wrapper code that can be overwritten by updates. The plug-in basically provides the ability forwindow.open()
to open a new window in the external browser.You can add this plug in with:
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
in your Cordova project or – if you're using Visual Studio's Cordova Tools by adding it from the Visual Studio add-in Configuration page.
The plugin basically replaces the
window.open()
function inside of the WebView control and so causes a new instance of the device browser to open – on iOS that'd be Safari.
我不熟悉 IONIC,但我很确定 Ionic 使用 angularjs 所以 ....
以下适合我!
//关注HTML
<div>
<div ng-app="sampleApp" ng-controller="MainCtrl">
<ion-content style="display:block">
<a href="" ng-click="openUrl(item.link)">Open in new</a>
</ion-content>
</div>
</div>
和以下控制器
var SampleApp;
(function (SampleApp) {
var app = angular.module('sampleApp', ['ionic']);
app.controller('MainCtrl', function ($scope) {
$scope.item = {
link: 'http://example.com'
}
$scope.openUrl = function(url){
window.open(url, '_blank', 'location=yes')
}
});
})(SampleApp || (SampleApp = {}));
JS-Fiddle: http://jsfiddle.net/daveamit/r2c8dfhx/1/
希望对您有所帮助!
已排序
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
对我来说
<a href="{{item.url}}" onclick="window.open(this.href,'_self');">
{{menu.title}}
</a>
工作完美。
'location=yes' 产生错误,因为-
2 001637 error Uncaught ReferenceError: yes is not defined, http://localhost:8100/?ionicplatform=android, Line: 1
现在运行良好。