我的新闻文章包含一些带有href的锚标签,因此我无法在基于href的离子3应用程序中导航。所以我必须做的是我必须用click事件替换所有href并将href值作为参数传递给该函数。所以基于参数我可以推送到我的应用程序中的其他页面。
我收到这样的文章。
Here it is some news article with <a href="tickcharts.php" ></a> and one more link like <a href="kalender.php" ></a> like this.
我必须实现这个目标
Here it is some news article with <a (click)="handlefunction(tickcharts.php)" ></a> and one more link like <a (click)="handlefunction(kalender.php)" ></a> like this.
这样我就可以根据功能参数轻松导航。
handlefunction(navpage){
if(navpage == 'tickcharts.php'){
// Navigate to tickcharts page in my app
}else if(navpage == 'kalender.php'){
// Navigate to kalender page
}
}
这篇新闻文章来自我的mysql数据库。如果有可能我们可以在查询中替换但是如何?
请帮我摆脱这个。
答案 0 :(得分:0)
我不熟悉离子,但如果有帮助,我可以为您提供一个通用的JavaScript解决方案:
window.addEventListener('click', event => {
if (!event.target.hasAttribute('href')) return true;
event.preventDefault();
handlefunction(event.target.getAttribute('href'));
return false;
});
这将捕获窗口级别的所有点击事件,如果事件源自具有href
属性的元素,则会取消默认操作(即浏览器导航)并将href
传递给你的handlefunction()
。
答案 1 :(得分:0)
您可以使用Router
来解决您的问题
<强> HTML 强>
<a (click)="handlefunction(tickcharts.php)"
<强> TS 强>
constructor(private route: Router){
}
handlefunction(tickcharts){
if(navpage == 'tickcharts.php'){
this.route.NavigateByUrl('PROVIDE URL');
}else if(navpage == 'kalender.php'){
this.route.NavigateByUrl('PROVIDE URL');
}
}
答案 2 :(得分:0)
你可以这样做:
const handlefunction = href => console.log(href);
document
.querySelectorAll('a')
.forEach(link => {
link.addEventListener('click',e => {
e.preventDefault();
handlefunction(e.target.getAttribute('href'));
});
});
Here it is some news article with <a href="tickcharts.php">tickcharts</a> and one more link like <a href="kalender.php">kalender</a> like this.
答案 3 :(得分:0)
handlefunction(){
window.open("path/to/your/tickcharts.php", "_blank"); //if you need it in new tab
window.location.open("path/to/your/tickcharts.php"); //in same tab
}
答案 4 :(得分:0)
感谢您输入的每一个我都得到了这样的解决方案。
首先我在我的后端有过滤数据,我已经用class替换了所有href。
var anchors = this.element.nativeElement.getElementsByTagName('a');
if (length != 0) {
for (var i = 0, length = anchors.length; i < length; i++) {
var anchor = anchors[i];
anchor.addEventListener('click', this.handlelinks.bind(this))
};
}
}
handlelinks(transition) {
var navUrl = transition.srcElement.classList[0];
if(navUrl == 'tickcharts.php'){
// go to tickcharts page
}
}