如何让 html 而不是 运行 显示在页面上?

How to do i get html to display on page instead of running?

我的问题似乎与其他大多数人的问题相反。我不想把.innerHTML中的HTML改成运行。我希望它按原样显示在页面上。 (我知道我的代码中还有另一个问题。我正在处理)

https://jsfiddle.net/ojfykv17/

<div id="code">

</div>

    function genorateCode() {
      var account = document.getElementById("account");
        var url = document.getElementById("url");
        sendCode();
    }
    function sendCode() {
    document.getElementById('code').innerHTML = '<a href="'+url+'">'+'<div class="button"><img src="https://s15.postimg.org/mfpd2ki8r/icon.png" width="16">@'+account+'</div></a>';
    }
    sendCode();
    .button {
    border-radius: 5px;
    background-color: white;
    border:1;
    border-style: solid;
    position: fixed;
    padding: 5px 10px 5px 10px;
    border-width: 1.2px;
    line-height: 5px; 
    border-color: #a5aab1;
    font-family: 'Lato', sans-serif;
    font-weight:300;
    text-align: center;
    }
<form id="form" onsubmit="return false;">
        <input type="text" id="account" />
        <input type="text" id="url" />
        <input type="submit" onclick="genorateCode();" />
    </form>
    
    <div id="code">
    
    </div>

您需要将所有 HTML 标签从 <> 转换为 &lt;&gt;。否则浏览器会将其呈现为 HTML。

而不是设置 innerHTML,设置元素的 innerText

document.getElementById('code').innerText = '<a href="'+url+ ...

您的代码中有几处需要修改。第一个函数有局部变量 accounturl,然后你在第二个函数中访问它,当然不在它的范围内。

var account,url;

function genorateCode() {
  // are you sure you want this document.getElementById("account")
  // instead if this -> document.getElementById("account").value ???
  account = document.getElementById("account").value;
  url = document.getElementById("url").value;
  sendCode();
}

在您的情况下,您可以使用 insertAdjacentHTML,如下所示:

function sendCode() {  
  var str = '<a href="' + url + '">' + '<div class="button"><img src="https://s15.postimg.org/mfpd2ki8r/icon.png" width="16">@' + account + '</div></a>';
  document.getElementById('code').insertAdjacentHTML('beforeend', str);
}

DEMO