使用JavaScript打电话
我知道使用JavaScript打电话,javascript,mobile,Javascript,Mobile,我知道将在手机上启动拨号程序,并将导致FF和Chrome尝试在传统计算机上启动默认拨号程序;但是,在启动默认行为之前,我需要执行一些JavaScript来实现一些标记(特别是dcsMultiTrack)。我试过下面的方法,但它没有打电话,而是坐着 <a href="tel:+15555555555" class="call_now preventPhone" onclick="trackPhone('SomeEvent', 'SomeTag','tel:+15555555555',this
将在手机上启动拨号程序,并将导致FF和Chrome尝试在传统计算机上启动默认拨号程序;但是,在启动默认行为之前,我需要执行一些JavaScript来实现一些标记(特别是dcsMultiTrack)。我试过下面的方法,但它没有打电话,而是坐着
<a href="tel:+15555555555" class="call_now preventPhone" onclick="trackPhone('SomeEvent', 'SomeTag','tel:+15555555555',this)">1-555-555-5555</a>
function setLocation(nextPage, target) {
if (target == "_blank") {
window.open(nextPage);
}
else {
location.href = nextPage;
}
}
function trackPhone(vPageUrl, vPageTitle, phone, aTag) {
dcsMultiTrack('DCS.dcsuri', vPageUrl, 'WT.ti', vPageTitle);
setTimeout("setLocation('" + phone + "', '" + aTag.target + "')", 500);
return false;
}
$(document).ready(function () {
$('.preventPhone').click(function (e) {
e.preventDefault();
});
});
功能设置位置(下一页,目标){
如果(目标==“_blank”){
窗口。打开(下一页);
}
否则{
location.href=nextPage;
}
}
功能跟踪电话(vPageUrl、vPageTitle、电话、aTag){
dcsMultiTrack('DCS.dcsuri',vPageUrl',WT.ti',vPageTitle);
设置超时(“设置位置(“+phone+”,“+aTag.target+”)”,500);
返回false;
}
$(文档).ready(函数(){
$('.preventPhone')。单击(函数(e){
e、 预防默认值();
});
});
编辑:
澄清一下,我之所以阻止默认值,是因为电话呼叫动作触发得太快,dcsMultiTrack无法返回其回调,这就是为什么我希望tel有一个JS等价物:+…您不必调用函数preventDefault()?如果调用,则不会触发事件的默认操作(在传统计算机上启动默认拨号程序)。请参见当我在寻找dcsMultiTrack解决方案时,偶然发现了这篇文章,我相信我有一个解决方案给你 首先,动态创建标记,以便以后可以对其进行操作
var myLink = document.createElement('a');
myLink.setAttribute('id','myPhoneLink');
myLink.setAttribute('href','javascript://');
var myTextNode = document.createTextNode('1-555-555-5555');
myLink.appendChild(myTextNode);
基本上,这会创建一个在单击时不做任何事情的链接
在函数中,您可以更改属性href的值:
myLink.setAttribute('href','tel:+15555555555');
现在,你的链接起作用了。您可以将这一行放在一个单独的函数中,该函数具有如下条件语句:
var myCheckFunc = function(){
if(condition){
myLink.setAttribute('href','tel:+15555555555');
}else{
myCheckFunc();
}
这样,您的函数将自动调用,直到满足条件为止,这将在您准备更改链接时更改链接的href
现在,我有一个关于webtrends的问题,如果你能帮我配置管理员,我将不胜感激
单击横幅时,将调用以下函数
dcsMultiTrack('DCSext.Carousel','Home','WT.ti','Home',
'WT.pc','Banner;Position','WT.pn_sku',tempPC,'WT.tx_u',
tempQuantity,'WT.tx_s',tempQuantity);
如何设置一个以三列报告的形式显示结果的报告,显示转盘在家、横幅和位置?请尝试不从
trackPhone
方法返回false
。您特别禁止默认处理。如果希望在脚本完成后进行默认处理,为什么要这样做?电话呼叫操作启动得太快了。与正常的联系,这工作刚刚好。为了澄清,我希望有一种模仿tel的方法:+。。。。使用JavaScript,但Google并不是很有帮助。在解除绑定后,您必须自己在方法中调用默认事件。例如:'$('.preventPhone')。单击(函数(ev){ev.preventDefault();//…将代码放在此处//稍后您决定要触发默认事件$(this)。取消绑定('click')。单击();});'当然,您必须从html标记中删除“onclick=”“”,希望这对您有所帮助!