2017-08-06 44 views
1

我想在我的数据库中插入带有textarea字段的html和JavaScript代码。问题是代码已经插入,但它用反冲代替了所有的双重问题。如何用textarea插入这段代码。如何插入带有textarea的html和javascript代码

<div id="TA_cdsratingsonlynarrow539" class="TA_cdsratingsonlynarrow"><ul id="Ny62NY" class="TA_links r04zlbt"><li id="jb9xdEapRG" class="sc9nmfeVX"><a target="_blank" href="https://www.tripadvisor.com/"><img src="https://www.tripadvisor.com/img/cdsi/img2/branding/tripadvisor_logo_transp_340x80-18034-2.png" alt="TripAdvisor"/></a></li></ul></div><script src="https://www.jscache.com/wejs?wtype=cdsratingsonlynarrow&amp;uniq=539&amp;locationId=671932&amp;lang=en_US&amp;border=false&amp;shadow=false&amp;display_version=2"></script>

+0

[This](https://stackoverflow.com/a/37339415/5894241)回答可能会有所帮助。 – Nisarg

回答

0

,能够插入/注入HTML和JavaScript使用代码textarea的输入字段到当前页面。

考虑,你下面的textarea:

<div id="output"></div> 
<div style="margin: 25px auto; width: 80%; height: auto;"> 
    <form id="myform" name="myform"> 
     <textarea id="mytextarea" name="mytextarea" cols="90" rows="20"></textarea> 
     <br> <button type="button" id="mybutton">execute</button> 
    </form> 
</div> 

现在,您可以将事件侦听器添加到上面的按钮提取HTML和textarea的javascript代码,并将其插入到页面:

window.addEventListener('load', function() { 
     document.getElementById('mybutton').addEventListener('click', function (e) { 
      var mytextarea = document.getElementById('mytextarea'); 
      var pattern = /<script>([^]+?)<\/script>/mg; 
      var matches, txt = mytextarea.value; 
      if (txt) { 
       while (matches = pattern.exec(txt)) { 
        if (matches[1]) { 
         var tContent = matches[1].replace(/(\n|\r)+/gm, ''); 
         var s = document.createElement('script'); 
         s.innerText = tContent; 
         document.body.appendChild(s); 
        } 
       } 
       txt = txt.replace(pattern, ''); 
      } 
      if (txt) { 
       document.getElementById('output').innerHTML = txt; 
      } 
     }); 
    });