首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >制作一个href=tel:不加数字就可以工作

制作一个href=tel:不加数字就可以工作
EN

Stack Overflow用户
提问于 2018-09-17 07:42:25
回答 1查看 136关注 0票数 1

我有一个javascript,它读取一个xml,打印一个表,我想让每个数字都可以点击,这样它就可以启动一个Phone App。

代码语言:javascript
运行
复制
<table class="table table-striped table-dark" id="campanie"></table>

function loadXMLDoc() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            myFunction(this);
        }
    };
    xmlhttp.open("GET", "campanie-full.xml", true);
    xmlhttp.send();
}

function myFunction(xml) {
    var i;
    var xmlDoc = xml.responseXML;
    var table="<thead class=thead-light><tr><th><h5 class=text-dark>Nr.</h5></th><th><h5 class=text-dark>Company</h5></th><th><h5 class=text-dark>Phone 1</h5></th><th><h5 class=text-dark>Phone 2</h5></th></tr></thead>";
    var x = xmlDoc.getElementsByTagName("DirectoryEntry");
    for (i = 0; i <x.length; i++) { 
        table += "<tr><td><p>" +
            [i+1] + "</p></td><td><p>" +
            x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue +
            "</p></td><td><a href=tel:>" +
            x[i].getElementsByTagName("Telephone")[0].childNodes[0].nodeValue +
            "</a></td><td><a href=tel:>" +
            x[i].getElementsByTagName("Telephone")[0].childNodes[0].nodeValue +
            "</a></td></tr>";
    }
    document.getElementById("campanie").innerHTML = table;
}    

为了让每个href=tel:都能正常工作,我应该做什么?另外,您将看到我将“ Phonebook ”标签放置了两次,因为Phonebook有多个电话号码。作为第二个问题,我想知道如何正确地读取XML文件,因为XML文件是不能以任何方式编辑的。不能将<Telephone>标记从XML更改为<Telephone1><Telephone2>。然而,这个问题可以等待。

编辑:我添加了一个示例XML

代码语言:javascript
运行
复制
<CiscoIPPhoneDirectory>
<DirectoryEntry>
    <Name>Doctor Dolittle</Name>
    <Telephone>100</Telephone>
    <Telephone>+19001234567</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Tommy Stubbins</Name>
    <Telephone>101</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Chee-Chee</Name>
    <Telephone>102</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Prince Bumpo</Name>
    <Telephone>103</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Polynesia</Name>
    <Telephone>104</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Gub-Gub</Name>
    <Telephone>105</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Jip</Name>
    <Telephone>106</Telephone>
</DirectoryEntry>
<DirectoryEntry>
    <Name>Dab-Dab</Name>
    <Telephone>107</Telephone>
</DirectoryEntry>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-17 08:04:09

您需要检查Xml以查看是否有1或2个电话号码。(您还可以让它检查是否可能发生任何情况,而根本不添加一行)。然后,根据数据显示的内容,添加第二个电话号码或一个空手机。

更改从Xml响应创建表内容的函数,如下所示.

代码语言:javascript
运行
复制
function myFunction(xml) {
    var i;
    var xmlDoc = xml.responseXML;
    var table="<thead class=thead-light>" +
        "<tr><th><h5 class=text-dark>Nr.</h5></th>" +
        "<th><h5 class=text-dark>Company</h5></th>" +
        "<th><h5 class=text-dark>Phone 1</h5></th>" +
        "<th><h5 class=text-dark>Phone 2</h5></th>" +
        "</tr></thead>";

    var x = xmlDoc.getElementsByTagName("DirectoryEntry");

    for (i = 0; i <x.length; i++) { 
        var name = x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
        var tel1 = x[i].getElementsByTagName("Telephone")[0].childNodes[0].nodeValue;
        var tel2 = "";

        // if there are 2 phone numbers, get the value of the 2nd one
        if (x[i].getElementsByTagName("Telephone").length === 2) {
            // check that it's not an empty node...
            if (x[i].getElementsByTagName("Telephone")[1].childNodes) {
                tel2 = x[i].getElementsByTagName("Telephone")[1].childNodes[0].nodeValue;
            }
        }

        table += "<tr><td><p>" + [i+1] + "</p></td>" +
            "<td><p>" + name + "</p></td>" +
            "<td><a href='tel:" + tel1 + "'>" + tel1 + "</a></td>";

        // if we don't have a 2nd phone number then add an empty cell
        if (tel2 === "") {
            table += "<td></td>";
        }
        // if we do have a 2nd phone number then add it
        else {
            table += "<td><a href='tel:" + tel2 + "'>" + tel2 + "</a></td>";
        }

        table += "</tr>";
    }
    document.getElementById("campanie").innerHTML = table;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52362959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档