我正在使用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插件。但这仍然无效。
请建议。
答案 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);
希望这有帮助。