Window.open()打开一个通过json文件传递的URL?

时间:2016-03-08 14:41:40

标签: javascript html json ionic-framework window.open

我正在使用html代码为android和ios构建一个离子应用程序。我试图从存储在服务器上的json文件调用链接的字段名称链接,但window.open()将无法识别这个,有人可以帮忙吗?

<a onClick="window.open({{item.link}}, '_blank', 'location=yes')">

尝试使用href,但他们只在浏览器中打开链接,不允许用户在测试时退出,他们必须完全退出应用才能返回。

任何帮助将不胜感激。它似乎只发生在ios上。

GOT IT SORTED

<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">

4 个答案:

答案 0 :(得分:0)

您应该href使用target

 <a href="{{item.link}}" target="_blank">

根据AngularJS docs,您应该在加载AngularJS之前阻止用户可以使用该链接,如下所示:

 <a ng-href="{{item.link}}" target="_blank">

或者,如果您真的想使用onclick,请添加“javascript:”并将链接用单引号括起来:

 <a href="#" onclick="javascript:window.open('{{item.link}}', '_blank', 'location=yes')">

使用插件强制“目标”链接在外部浏览器中打开

当在WebView中打开链接时,用户无法返回上一个视图。

This article对此有所了解:

  

幸运的是,有一个cordova.inAppBrowser插件将这个hack封装在一个易于添加的插件中。这是一个更简单的解决方案,不需要破解可以被更新覆盖的生成的cordova WebView包装器代码。该插件基本上为window.open()提供了在外部浏览器中打开新窗口的功能。

     

您可以使用以下选项添加此插件:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
     在您的Cordova项目中

或 - 如果您通过从Visual Studio加载项配置页面添加Visual Studio的Cordova工具来使用它。

     

该插件基本上取代了WebView控件中的window.open()函数,因此导致设备浏览器的新实例打开 - 在iOS上就是Safari。

答案 1 :(得分:0)

我对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>

关注Controller

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/

希望这有帮助!

答案 2 :(得分:0)

GOT IT SORTED

<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">

答案 3 :(得分:0)

对我来说

<a href="{{item.url}}" onclick="window.open(this.href,'_self');">
   {{menu.title}}
</a>

完美的工作 'location = yes'产生错误as-

2     001637   error    Uncaught ReferenceError: yes is not defined, http://localhost:8100/?ionicplatform=android, Line: 1

现在它运作良好。