我如何将多个javascript函数组合成一个

How can I combine multiple javascript fuctions into one?

本文关键字:一个 组合 javascript 函数      更新时间:2023-09-26

我想知道如何将这4个javascript函数组合成一个。它们完全相同,只是针对第8行不同的ID。它被用于google adwords电话跟踪功能。

<script type="text/javascript">
        var callback = function(formatted_number, mobile_number) {
          // formatted_number: number to display, in the same format as
          //        the number passed to _googWcmGet().
          //        (in this case, '1-800-123-4567')
          // mobile_number: number formatted for use in a clickable link
          //        with tel:-URI (in this case, '+18001234567')
          var e = document.getElementById("number_link_one");
          e.href = "tel:" + mobile_number;
          e.innerHTML = ""
          e.appendChild(document.createTextNode(formatted_number));
        };
      </script>
<script type="text/javascript">
        var callback = function(formatted_number, mobile_number) {
          // formatted_number: number to display, in the same format as
          //        the number passed to _googWcmGet().
          //        (in this case, '1-800-123-4567')
          // mobile_number: number formatted for use in a clickable link
          //        with tel:-URI (in this case, '+18001234567')
          var e = document.getElementById("number_link_two");
          e.href = "tel:" + mobile_number;
          e.innerHTML = ""
          e.appendChild(document.createTextNode(formatted_number));
        };
      </script>
<script type="text/javascript">
        var callback = function(formatted_number, mobile_number) {
          // formatted_number: number to display, in the same format as
          //        the number passed to _googWcmGet().
          //        (in this case, '1-800-123-4567')
          // mobile_number: number formatted for use in a clickable link
          //        with tel:-URI (in this case, '+18001234567')
          var e = document.getElementById("number_link_three");
          e.href = "tel:" + mobile_number;
          e.innerHTML = ""
          e.appendChild(document.createTextNode(formatted_number));
        };
      </script>
<script type="text/javascript">
        var callback = function(formatted_number, mobile_number) {
          // formatted_number: number to display, in the same format as
          //        the number passed to _googWcmGet().
          //        (in this case, '1-800-123-4567')
          // mobile_number: number formatted for use in a clickable link
          //        with tel:-URI (in this case, '+18001234567')
          var e = document.getElementById("number_link_four");
          e.href = "tel:" + mobile_number;
          e.innerHTML = ""
          e.appendChild(document.createTextNode(formatted_number));
        };
      </script>

任何帮助都非常感谢!

可以使用数组遍历所需的字符串:

var callback = function(formatted_number, mobile_number, number) {
      listofNumbers = ["one","two","three","four"]
      for(i=0;i<listOfNumbers.length;i++){
          var e = document.getElementById("number_link_"+listOfNumbers[i]);
          e.href = "tel:" + mobile_number;
          e.innerHTML = ""
          e.appendChild(document.createTextNode(formatted_number));
      }
};

或者,如果在不同时间调用callback,您也可以添加一个新参数来指定第8行使用的ID:

var callback = function(formatted_number, mobile_number, number) {
      // formatted_number: number to display, in the same format as
      //        the number passed to _googWcmGet().
      //        (in this case, '1-800-123-4567')
      // mobile_number: number formatted for use in a clickable link
      //        with tel:-URI (in this case, '+18001234567')
      var e = document.getElementById("number_link_"+which);
      e.href = "tel:" + mobile_number;
      e.innerHTML = ""
      e.appendChild(document.createTextNode(formatted_number));
};

然后,在以后的函数调用中,只需使用:

callback(formatted_number, mobile_number, "one"); //or "two", "three", etc.