如何为移动用户设置可点击的动态电话号码

时间:2015-03-11 13:03:44

标签: javascript html phone-number clickable

我的网站上的电话号码是通过JavaScript自动插入的,以显示默认电话号码(在主JavaScript中定义)或更改为可变电话号码(如果网页是通过URL字符串访问的话)电话号码 - 例如:

http:www.website.com?tfid=8005551212 

我需要做的是让移动用户可以点击电话号码,这样无论出现哪个电话号码,他们都可以点击它,然后拨打电话号码。

据我所知,如果用带有tel:属性的锚包装电话号码,它将启动点击呼叫功能,但是如何写入标签以便允许传递电话号码变量?例如:

<a href="tel:variable telephone number">variable telephone number</a>

1 个答案:

答案 0 :(得分:0)

你是说这个意思吗? 请重写您的脚本以不使用document.write。如果您在页面加载后调用了其中一个函数,它将擦除页面。

document.getElementById("phonenumber").innerHTML='<a href="tel:'+phone_number+'">'+phone_number+'</a>';

像这样,使用原始代码

<div id="phonenumber">Call:  </div>

function getPhone() {
   var phone = get_named_cookie("MM_TrackableNumber");
   if (phone == null) phone = "8885551313";
   return formatnumber(phone);
}

window.onload=function() {
  document.getElementById("phonenumber").innerHTML+=getPhone();
}                            

完整代码

   function pixelfire(debug) {
       var phone_number = getVar("phone_number");
       var keyword = getVar("keyword");
       var source = getVar("source");
       if (keyword) {
           setcookie(keyword, phone_number);
       } else {
           var keyword = get_named_cookie("MM_Keyword");
           var phone_number = get_named_cookie("MM_TrackableNumber");
           return keyword || null;
       }
       var campaign = getVar("campaign");
       var content = getVar("content");
       var url = "http://www.mongoosemetrics.com/pixelfire.php?phone_number=" + phone_number;
       var url = url + "&keyword=" + keyword;
       var url = url + "&source=" + source;
       var url = url + "&campaign=" + campaign;
       var url = url + "&content=" + content;
       myImage = new Image();
       myImage.src = url;
   }

   function setcookie(key, tn, path) {
       index = -1;
       var today = new Date();
       today.setTime(today.getTime());
       var cookie_expire_date = new Date(today.getTime() + (365 * 86400000));
       document.cookie = "MM_TrackableNumber=" + tn + ";path=/;expires=" + cookie_expire_date.toGMTString();
       document.cookie = "MM_Keyword=" + key + ";path=/;expires=" + cookie_expire_date.toGMTString();
   }
   function getPhone() {
       var phone = get_named_cookie("MM_TrackableNumber");
       if (phone == null) phone = "8885551313";
       return formatnumber(phone);
   }

   function get_named_cookie(name) {
       if (document.cookie) {
           index = document.cookie.indexOf(name);
           if (index != -1) {
               namestart = (document.cookie.indexOf("=", index) + 1);
               nameend = document.cookie.indexOf(";", index);
               if (nameend == -1) {
                   nameend = document.cookie.length;
               }
               var ret_one = document.cookie.substring(namestart, nameend);
               return ret_one;
           }
       }
   }
   //function to format the phonenumber to (123) 456-7890
   function formatnumber(num) {
       _return = "1-";
       var ini = num.substring(0, 3);
       _return += ini + "-";
       var st = num.substring(3, 6);
       _return += st + "-";
       var end = num.substring(6, 10);
       _return += end;
       return _return;
   }

   function getVar(name) {
       get_string = document.location.search;
       return_value = '';

       do { //This loop is made to catch all instances of any get variable.
           name_index = get_string.indexOf(name + '=');

           if (name_index != -1) {
               get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);

               end_of_value = get_string.indexOf('&');
               if (end_of_value != -1) value = get_string.substr(0, end_of_value);
               else value = get_string;

               if (return_value == '' || value == '') return_value += value;
               else return_value += ', ' + value;
           }
       } while (name_index != -1)

       //Restores all the blank spaces.
       space = return_value.indexOf('+');
       while (space != -1) {
           return_value = return_value.substr(0, space) + ' ' + return_value.substr(space + 1, return_value.length);

           space = return_value.indexOf('+');
       }

       return (return_value);
   }
   window.onload = function () {
       key = getVar("keyword");
       tn = getVar("tfid");
       source = getVar("source");
       content = getVar("content");
       campaign = getVar("campaign");
       if (tn != "") {
           setcookie(key, tn);
       }
       var phone_number = getPhone();
       document.getElementById("phonenumber").innerHTML+='<a href="tel:'+phone_number+'">'+phone_number+'</a>';
   }