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

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

本文关键字:运行 html 显示      更新时间:2023-09-26

我的问题似乎与大多数人的问题相反。我不希望。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>

设置元素的innerText,而不是innerHTML

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

您需要将所有HTML标记从<>转换为&lt;&gt;。否则,浏览器将把它呈现为HTML。

需要在代码中编辑几件事。第一个函数具有局部变量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);
}