我正在构建一个离子应用程序,允许用户彼此聊天。
如果用户以纯文本形式发送url,则我有一个名为urlify
的函数,该函数用html替换了文本,当用户单击html的url时,应该将其带到那个位置。网址。
问题在于,锚点元素无法在Ionic中打开url,因此我必须使用window.open(url)
。
这是我的代码:
urlify(text) {
if(text) {
var urlRegex = /(https?:\/\/[^\s]+)/g;
return text.replace(urlRegex, function(url) {
return '<span class="message-link">' + url + '</span>';
})
}
}
openLink(url) {
window.open(url, '_system')
}
因此,当用户单击span
时,它应该打开openURL
,但是由于无法将(click)="openURL(url)"
添加到动态生成的html中,所以我不确定该怎么做。
有什么想法吗?谢谢!
答案 0 :(得分:0)
这可以为您提供帮助,您可以通过这种方式动态添加任何内容。
urlify(text) {
if(text) {
var urlRegex = /(https?:\/\/[^\s]+)/g;
return text.replace(urlRegex, function(url) {
let newElement = document.createElement('span');
newElement.innerHTML = url
newElement.classList.add('message-link');
newElement.onclick = function() {
window.open(url, '_system')
}
return newElement
});
}
}
您可以返回此newElement或将其添加到此处,例如,以这种方式添加document.getElementById('someDivID').append(newElement)