我用jquery异步输出php文件中echo出的html代码,火狐浏览器和谷歌浏览器不经过编译直接输出html源码?

我的部分代码:
php文件中的输出:
if($obj["发送者"] == $_SESSION[nick]) {
echo "<span style='font-weight:700;font-size:15px;color:blue;line-height:200%;'>".$obj["发送者"]."</span>";
}else{
echo "<span style='font-weight:700;font-size:15px;color:green;line-height:200%;'>".$obj["发送者"]."</span>";
}
if(session_id() != $obj["会话id"]) {
echo "<span style='font-size:14px;color:#ACACAC;line-height:150%;'>"."(".$obj["发送时间"].":)</span>";
echo "<br />";
echo "<span style='font-size:14px;color:#ACACAC;line-height:150%;'>"." ".$obj["发送内容"]."</span>";
echo "<br />";
});
}else {
echo "<span style='font-size:14px;color:#000000;line-height:150%;'>"."(".$obj["发送时间"].":)</span>";
echo "<br />";
echo "<span style='font-size:14px;color:#000000;line-height:150%;'>"." ".$obj["发送内容"]."</span>";
echo "<br />";
}

js文件中的代码:
$.get("operateDialog1.php",{sendcontent:$("#eenter").val(),sendtime:$("#sendtime").val(),sendip:$("#sendip").val(),sessionid:$("#sessionid").val(),sendto:$("#sendto").val()},function(data){
$("#sshow").html($.trim(data));
以上代码在IE和360浏览器中都能正常显示,可是在火狐浏览器和谷歌浏览器中就直接把html源码显示出来了,怎么解决?谢谢!

你可以把你后台取到的变量数据echo出来,把html代码拼接的部分放到前台。

如果你一定要在后台这样拼接的话可以用<<< eof

例如这样:

追问

不好意思,“<<< eof"是什么意思啊?

追答

http://admin3980.blog.163.com/blog/static/12894932012101514139742/
你可以看一下这个,应该就明白了,里面有例子的

追问

可是我的代码中echo出的html代码中夹杂着php变量,这个不好解决呀!

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-30
  尊敬的用户,您好!很高兴为您答疑。
  出现此问题是因为您这种异步是把动态代码作为变量向后台传递,而火狐当作一般字符转义了,故被服务器端接收到不会作为动态代码执行。实际上您这种需求的echo和js混排的方式无论执行效率还是安全性都非常差,极易出现注入的漏洞。
  希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。追问

那应该怎么写这部分的代码呢?我的代码IE浏览器、360浏览器、QQ浏览器中浏览一切正常,就是谷歌、淘宝和火狐浏览器不行。有没有一个简单易懂的代码?请指教!

追答

配上转译字符。

本回答被网友采纳

怎样通过php echo语句来执行jQuery
通过php执行jquery,首先要知道整个程序流程:php执行完毕,生成html代码,包括js,css等,返回传递给客户端浏览器,浏览器执行html,js和css代码渲染浏览器效果;这样就出现顺序差,php执行完毕,然后回传浏览器执行返回的内容;这样,php使用echo输出正常的jq代码,就可以在浏览器执行jQuery代码,例如:echo ...

ajax问题:怎么不支持火狐浏览器?还有就是乱码
您好!很高兴为您答疑!js解析xml文件火狐浏览器不支持,建议您使用jquery框架来解析xml文件,js的字符编码默认是UTF-8的。您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

jQuery $.get(url,data,callback,type) 返回值给全局变量赋值的问题
ls说的对,Ajax是异步JavaScript&XML浏览器解析页面时候不等你Ajax响应会来,就会继续向下执行,这时你的全局mm任然是1,如果你在回调函数function(data){}内部alert的话,就会是8了。一种是楼上说的方法 另一种就是把异步改为同步 async: false ...

在HTML文件中用iframe调取php文件后,php文件中的js怎么不起作用了,怎...
在b.php中有这样一段PHP代码:复制代码代码如下:<?php action=$_GET['action'];echo "document.write('".$action."');n";?> 当执行a.html文件时,就会调用b.php文件,并将b.php文件的输出作为JS语句来执行,内容为JS传递的参数action的值,也就是在PHP文件中接受过来的action的值.jquery的load函...

我在jQuery里用ajax,代码如下,传递到后台接收的college为NULL,是怎...
检测此处有没有获取到值 college = $("#college option:selected").text();可以用alert(college);测试一下 data: {college:college}, data的写法换成这种试一下 确定提交的url地址有没有写对 可以用火狐浏览器开启firebug查看

jQuery Ajax同步参数导致浏览器假死怎么办
代码如下 复制代码 ('.btn2').click(function(){ ('.loadingicon').show();setTimeout(function(){ .ajax({ url : 'p.php',async : false,success: function(data){ ('.loadingicon').hide();alert(data);} });}, 0);});setTimeout的第二个参数设为0,浏览器会在一个已设的...

PHP 如何输出html中复选框的值
非得想用php输出复选框的话,代码如下:tmpArr["brand"] = "brand";$tmpArr["service"] = "good service";$tmpArr["easy"] = "easy to get";$tmpArr["advertise"] = "advertise";echo "<h5>why choose us:<\/h5><select name=\\"choose\\" multiple> ";foreach ($tmpArr as $key=...

...如下代码,IE能实现变量复制到剪切板,360浏览器不能实现,怎么破...
你这不是php的问题 而是js的问题了 window.clipboardData 兼容ie和火狐,你可以试试插件 jQuery ZeroClipboard

不用iframe如何实现在一个页面内加载另一个页面的内容
php,并设置链接携带两个参数,一个是act,另一个是num。4、再创建一个php页面,文件名为test2.php,用来接收test.php页面传递过来的值。5、在test2.php文件内,使用echo输出接收到的act、num参数。6、在浏览器中打开test.php文件,点击链接,跳转至test2.php页面,查看输出接收到的act、num值。

如何在当前页面用php 获取js 变量的值
1、首先我们创建一个test的php文件。2、在里面添加html需要的代码。3、我们在里面添加js脚本,定义一个a变量100。4、现在我们在底部添加php中代码,其中定义一个b变量默认为0,准备用它来接收js中的a的值。5、接着我们在script里面使用writeln输出a,并赋值给php中的变量b,在最后echo输出查看b中的值...

相似回答