Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在用户单击/触摸与tel:uri方案链接的电话号码时捕获电话号码已拨事件_Javascript_Html_Touch - Fatal编程技术网

Javascript 如何在用户单击/触摸与tel:uri方案链接的电话号码时捕获电话号码已拨事件

Javascript 如何在用户单击/触摸与tel:uri方案链接的电话号码时捕获电话号码已拨事件,javascript,html,touch,Javascript,Html,Touch,我想记录用户触摸并拨打android/iOS设备上显示的我的网页上显示的号码的所有事件?有可能吗?至少有三种方法可以解决此问题: 1。检查href on click() 您可以收听链接上的click()事件,并检测他们的href是否以电话开始: $( 'a' ).click( function () { var href = $( this ).attr( 'href' ); var tel = /^tel:/i.test( href ); if ( tel ) {

我想记录用户触摸并拨打android/iOS设备上显示的我的网页上显示的号码的所有事件?有可能吗?

至少有三种方法可以解决此问题:

1。检查href on click()

您可以收听链接上的
click()
事件,并检测他们的
href
是否以
电话开始:

$( 'a' ).click( function () {
    var href = $( this ).attr( 'href' );
    var tel = /^tel:/i.test( href );
    if ( tel ) {
        alert( 'A telephone link was clicked: ' + href );
        //if you don't want the default action (dial ) to happen, return false, otherwise don't return anything
    }
});
JSFIDLE Live:

2。使用类别标志

此外,如果您可以控制HTML,并且可以在所有
中为其设置类名:

$( 'a[href^="tel:"]' ).click( function () {
    alert( 'A telephone link was clicked: ' + $( this ).attr('href' ) );
});

这里有一个JSFiddle:

页面上的数字是如何显示的?您可以检测url的“点击(触摸)”,但这就是您所能做的。JS无法确定用户是否真的拨打了该号码。@JanHančiči正在使用
这不会告诉OP用户是否真的拨打了该号码,这是问题的一部分,但不可能。是的,这是不可能的。不过我不明白投反对票的原因。我只是想帮忙,答案没有错。它只是不能满足不可能的部分。你说“它很容易”,你没有提到它是不可能的。答案是非常误导的,因为你暗示你的代码按照OP的要求执行。@AlexStack,捕获事件部分是可以的,可以捕获页面上的每一次触摸。但棘手的是,用户是真的拨了这个号码,还是只是触摸了一下,什么也没做…@Kumar:你可以利用这样一个事实:拨一个号码会显示手机界面,并且(可能)会关闭浏览器。在这种情况下,请侦听window.onunload并检查它是否在单击链接之前发生。您可以在每次单击时保存时间戳,然后在window.onLoad上检查时间戳是否最近。但我不确定window.onunload是否是要检查的方法。在视图从浏览器更改为手机之前,可能会触发其他事件。
$( 'a[href^="tel:"]' ).click( function () {
    alert( 'A telephone link was clicked: ' + $( this ).attr('href' ) );
});