在HTML应用程序名.hta使用JavaScript被修改后不更新(HTML does not up

2019-10-21 20:45发布

我有一个包含JavaScript和HTML一个名.hta文件。 我的JavaScript代码修改与喜欢“的appendChild”功能的HTML,但是HTML没有得到事后更新; 即使件以DOM的结构corretly附加(我可以提醒.innerHTML,返回的HTML代码像它应该是,但它不会在浏览器中显示)。 如果放在一个HTML文件,它的工作原理完全没问题。

<!DOCTYPE html>
<html>
<head>
  <hta:application id="prjreq_v1" applicationname="ProjectRequirements">
    <script>
    function appendDiv(){

        //Get the element that will get appended
        var contentElement = document.getElementById("main_table");

        //Create table row
        var tr = document.createElement("tr");
        tr.id = 0;

        //Create table column
        var td_0 = document.createElement("td");
        td_0.id = "date";
        td_0.innerText = "22/22/2222";

        //Append
        tr.appendChild(td_0);
        contentElement.appendChild(tr);

        //Alert outputs the modified HTML, but it doesn't show...
        alert(contentElement.innerHTML);
    }
    </script>
</head>
<body>
    <div id="content">
        <table id="main_table">
            <tr>
                <th id="date">Date</th>
                <th id="source">Source</th>
                <th id="requirement">Description</th>
            </tr>
            <tr id="100">
                <td id="date">dd/MM/yyyy</td>
                <td id="source">Example1 Source</td>
                <td id="requirement">Lorem Ipsum dolores est</td>
            </tr>
        </table>
    </div>
    <script>(function (){appendDiv();})();</script>
</body>
</html>

Answer 1:

Internet Explorer已经一向真的挑剔添加行的表。 所有的浏览器,但是,假设你的表行包含在<tbody>元素,它是有效的一个表有多个<tbody>元素。 (你不能看到他们在屏幕上,它只是一个结构性的东西。)

因此,如果你换你<tr><tbody>然后添加到<table>它应该工作。

(我没有IE浏览器一应俱全,但它可能工作,如果你要明确包括<tbody>要不找到隐含一个,然后瞄准,与.appendChild()调用。)



文章来源: HTML does not update after being modified with JavaScript in .hta application