【问题标题】:How to do i get html to display on page instead of running? [duplicate]如何让 html 在页面上显示而不是运行? [复制]
【发布时间】:2017-03-21 12:33:52
【问题描述】:

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

【问题讨论】:

标签: javascript jquery html css innerhtml


【解决方案1】:

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

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

【讨论】:

  • browser support 上的强制性说明。还要检查链接的article
  • 这是一篇好文章,我建议任何找到此答案的人阅读它!
【解决方案2】:

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

【讨论】:

  • 如果&amp;lt; 已经转义,则不需要转义&amp;gt;
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2014-02-05
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2011-01-29
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多