编程语言
首页 > 编程语言> > PHP-添加动态HTML的Javascript的字符串问题

PHP-添加动态HTML的Javascript的字符串问题

作者:互联网

我正在使用PHP生成一个Javascript按钮,该按钮添加了一个复选框和一些其他HTML.

逃脱这些字符以将它们包括在onclick事件中的正确方法是什么?

我看到它建议将’和’转换为ascii值,但这似乎没有帮助.

$tempOutput = "<a href='temp.txt'>\"Happy\"</a>";
$tempOutput = str_replace("'", "&#39;", $tempOutput);
$tempOutput = str_replace('"', "&quot;", $tempOutput);

如果您在使用前回显字符串,只会导致以下结果:

<a href=&#39;temp.txt&#39;>&quot;Happy&quot;</a>

如果您检查页面元素,则为:

<a onclick="
                    var divTag = document.createElement('div');
                    divTag.innerHTML = '&lt;a href='temp.txt'&gt;&quot;Happy&quot;&lt;/a&gt;';
                    document.getElementById('extraDiv').appendChild(divTag) ;
                ">test</a>

我也尝试过仅将其追加到extradiv的innerHTML上,但也没有成功.

解决方法:

我主要使用PHPs rawurlencode()和Javascript的unescape():

  <?php
    $tempOutput = '<a href="temp.txt">'.htmlentities('"Happy"').'</a>';
  ?>
  <a onclick="
              var divTag = document.createElement('div');
              divTag.innerHTML = unescape('<?php echo rawurlencode($tempOutput);?>');
              document.getElementById('extraDiv').appendChild(divTag) ;
             ">test</a>
  <div id="extraDiv"></div>

这也将避免其他字符的错误,例如换行符.

标签:escaping,innerhtml,javascript,php
来源: https://codeday.me/bug/20191208/2090358.html