Angularjs + Phonegap锚标记无法打开网页

时间:2014-09-19 12:14:23

标签: angularjs cordova phonegap-plugins inappbrowser

我正在使用AngularJS和PhoneGap来创建移动应用。我有一个带有锚标记的HTML字符串,我使用ng-bind-html在屏幕上显示。但是,当我触摸手机上的链接时,它根本无法打开网站。我的目的是在新的浏览器窗口中打开网站。我传入ng-bind-html的字符串是: "<a href=\"#\" onclick=\"window.open('http://www.google.com', '_system');\">www.google.com</a>";

此外,我使用InAppBrowser Phonegap插件。但这仍然无效。

请建议。

2 个答案:

答案 0 :(得分:0)

您可以使用:

<a href=\"\" ng-click=\"window.open('http://www.google.com', '_system');\">www.google.com</a>

More... https://docs.angularjs.org/api/ng/directive/a

<a href="http://www.google.com" id="a_id">www.google.com</a>

$( "#a_id" ).click(function() {
     var url = $(this).attr('href')

    var ref = window.open(url, 'random_string', 'location=no');
    ref.addEventListener('loadstart', function(event) {
                       console.log(event.type + ' - ' + event.url);
    } );
    ref.addEventListener('loadstop', function(event) {
         console.log(event.type + ' - ' + event.url);


    } );
    ref.addEventListener('exit', function(event) {
                      //console.log(event.type + ' - ' + event.url);
    } );
});

答案 1 :(得分:0)

我遇到了这个问题,以便在我的应用中显示的推文列表中启用链接。 我最后在jQuery的帮助下使用了以下内容:

1)使用过滤器为您的链接添加一个类 HTML:

<span ng-bind-html="myLinks | externalLinks"></span>

在controller.js中过滤

.filter('externalLinks', function() {
    return function(text) {
        return String(text).replace(/href=/gm, "class=\"ex-link\" href=");
    }
});

2)在您的控制器中,您可以使用jQuery向链接添加click事件(我使用超时以确保链接已加载到DOM中,并且不要忘记在控制器中注入$ timeout)< / p>

$timeout(function(){
    jQuery('.ex-link').click(function (e) {                 
        var url = jQuery(this).attr('href');
        e.preventDefault();
        var system = "";
        if(device.platform == "iOS"){
            system = "_blank";
        }
        else {
            system = "_system"
       }
       window.open(url, system, "location=yes");
    })  
},1000);

希望这有帮助。