我知道<a href="tel:+15555555555">1-555-555-5555</a>
会在手机上启动拨号器,并会导致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();
});
});
编辑:
为了澄清,我正在阻止默认,因为电话呼叫操作的速度太快,dcsMultiTrack无法返回其回调,这就是为什么我希望有一个与JS相当的电话:+ ....
答案 0 :(得分:0)
您不必调用函数preventDefault()吗?如果被调用,则不会触发事件的默认操作(在传统计算机上启动默认拨号器)。见event.preventDefault()
答案 1 :(得分:0)
当我在寻找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);
如何设置报告,以三列报告显示结果,显示轮播是否为主页,横幅和位置?