Javascript添加动态HTML时出现字符串问题

|| 我正在使用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>
这也将避免其他字符的错误,例如换行符。     
        像这样逃跑
$tempOutput = str_replace(array(\"\'\",\'\"\'), array(\"\\\'\",\'&quot;\'), $tempOutput);
    
        使用html_entity_decode     

要回复问题请先登录注册