php - JQuery - 将 Html 评估为 Element

标签 php jquery html eval

在我的一些 PHP 页面上,我喜欢从其他地方加载数据,并填充输入或文本区域。

当涉及到 html 标签时,我遇到了问题。 (也有撇号) 我注意到在 FF 中,html 一般不太适合用 javascript 传递。 (错误控制台)

因此,如果可能的话,我正在寻求如何磨练这一点的帮助。

主页:

<textarea name="templatetext" id="templatetext"></textarea>

<script language="javascript" type="text/javascript">
$(document).ready(function(){

   /* calls page2.php */
   $.ajax({data:"formId=loadtemplatetext",
        success:function(response){ 
                                    eval(response); 
                                  } 
       });
        return false;
   });

});
</script>

Page2.php

<?php
$templatetext = '<p>This is a test email<br /><br /><br /></p>
<p><span style="color: #808080; font-size: 12px; font-family: Tahoma,sans-serif;"><strong>Some Text here with an apostophe or image: <br /><img title="Test Img" src="http://somefakeurl.com/img/somefakeimg.gif" alt="test img" width="112" height="59" />';

die('$("#templatetext").val("'.addslashes($templatetext).'");');
?>

这对于常规/纯文本非常有效。 我可以清理它以填充 <textarea> 内的值吗? ?

最佳答案

我建议更改执行此操作的方式。要么在客户端代码中知道新内容的去向,要么创建一个对象,使客户端的解析变得更容易。例如

版本一:服务器特定处理(和客户端处理)

<?php

  $result = array();
  $result['template'] = '<p>this is a test email<br/ >...';
  $result['target'] = '#templatetext';

  echo json_encode($result);

然后你的 AJAX 代码变成:

$.ajax({
  data:'formId=loadtemplatetext',
  success: function(d){
    $(d.target).html(d.template);
  }
});

版本二:服务器处理、客户端处理

<?php

  echo '<p>This is a test email<br />...';

然后你的 AJAX 就变成了:

$('#template').load('/page.php?formId=loadtemplatetext');

拒绝使用eval作为所有成本。这可能会导致很多安全威胁。

关于php - JQuery - 将 Html 评估为 Element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282410/

相关文章:

javascript - 需要事件处理程序时切换类问题

html - 从我的水平菜单中删除左右边距

php - 如何将两个查询合二为一?

jQuery 无需点击即可触发点击事件

javascript - javascript 和 ajax 发送邮件时遇到问题

jquery - 使用 JQuery 的周围元素 - before() 没有做我想做的事

javascript - 是否可以从 JavaScript 中的 HTTP 响应 header 中获取 Set-Cookie 值?

javascript - 防止下载 HTML5 视频(右键保存)?

php - PHP 中的 z-Scores(标准差和平均值)

php - 使用 PHP 从电子邮件回复中执行脚本 url