使用jquery的$.post返回的data给div的innerHtml赋值出现htmlfile运行时出现未知的错误

时间:2022-11-17 11:57:47
我在做一个学习积分查询页面中通过gridview查询出学习积分,将鼠标移到每一行时则显示该人员的详细学习情况,调用详细学习情况是根据每一行的唯一学号使用$.post方法去另一个页面查询的,然后再通过data参数将返回的值赋给页面中div的innerHTML属性,返回的data是一个完整的HTML页面。


使用ie10可以完美实现,但放到ie8上就出现如标题所示的错误提示。

data返回的内容如下所示

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title> 
</head>
<body>
<form name="form2" method="post" action="ServerRunCode.aspx" id="form2">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE1MTQ0ODQ4NDIPZBYCAgEPZBYCAgEPZBYCZg88KwARAgAPFgIeC18hSXRlbUNvdW50AgJkDBQrAAQWCB4ETmFtZQUG57G75Z6LHgpJc1JlYWRPbmx5aB4EVHlwZRkrAh4JRGF0YUZpZWxkBQbnsbvlnosWCB8BBQnmlofku7blkI0fAmgfAxkrAh8EBQnmlofku7blkI0WCB8BBQzmlofku7bnvJblj7cfAmgfAxkrAh8EBQzmlofku7bnvJblj7cWCB8BBQ3lrabml7Yv5YiG6ZKfHwJoHwMZKwEfBAUN5a2m5pe2L+WIhumSn2QYAQUFY3RsMDAPPCsADAEIAgFkL0XwbVNY6x2pgj3jTdZXjevC7Loryspk3Z7QSXFjHlM=" />
</div>

<div>
<table class="GridViewStyle" cellspacing="0" rules="all" border="1" style="border-collapse:collapse;">
<tr class="GridViewHeaderStyle">
<th scope="col">类型</th><th scope="col">文件名</th><th scope="col">文件编号</th><th scope="col">学时/分钟</th>
</tr><tr class="GridViewRowStyle" align="center">
<td>&nbsp;</td><td>&nbsp;</td><td>20151201140235715   </td><td>1</td>
</tr><tr class="GridViewAlternatingRowStyle" align="center">
<td>&nbsp;</td><td>&nbsp;</td><td>201512011411990206  </td><td>1</td>
</tr>
</table>
</div>
</form>
</body>
</html>

9 个解决方案

#1


使用jquery的$.post返回的data给div的innerHtml赋值出现htmlfile运行时出现未知的错误
这是在ie10上运行成功的页面效果

#2


使用jquery的$.post返回的data给div的innerHtml赋值出现htmlfile运行时出现未知的错误
这是在ie8中出现的错误提示。。。


都快被这问题搞疯了。。。。都 搞了一天了,找不出问题!

#3


应该是你的查询页面中有些标签并不是成对出现的,你可以检查一下页面上所有的HTML标签是否规范

#4


alert()下你的Data数据,看是否有问题???

#5


返回的data数据完全没问题的!我已经alert()出来看了,放在一个单独的html文档里能完整显示。。。。
我把后台运行的查询页面的form标签去掉则可以运行,但没有返回结果。。。
所以我估计是有form的原因!
那么问题来了,如果后台 查询页面不要form标签,后台查询页面运行不成功,data就也就没有返回数据!加了form标签又要报错,。。。???问题在这了

#6


$(diwShow).html(data)呢
看你描述你是后台组织好了html返回前台的

#7


是的。。。。关键是在IE10下完全没问题,一用到IE8问题就来了

#8


而且你是有form的?那换成下面的样子看看呢,只用form内部的html,可能会造成样式丢失
$(diwShow).html($(data).find('form').html())

#9


引用 6 楼 starfd 的回复:
$(diwShow).html(data)呢
看你描述你是后台组织好了html返回前台的



改为$(divShow).html(data)就正常了。。。。谢放!
但不知道是具体是什么原因!能想到的就是jquery与ie8的兼容性问题,ie10以上能识别,但低版本的就不行了!


结贴

#1


使用jquery的$.post返回的data给div的innerHtml赋值出现htmlfile运行时出现未知的错误
这是在ie10上运行成功的页面效果

#2


使用jquery的$.post返回的data给div的innerHtml赋值出现htmlfile运行时出现未知的错误
这是在ie8中出现的错误提示。。。


都快被这问题搞疯了。。。。都 搞了一天了,找不出问题!

#3


应该是你的查询页面中有些标签并不是成对出现的,你可以检查一下页面上所有的HTML标签是否规范

#4


alert()下你的Data数据,看是否有问题???

#5


返回的data数据完全没问题的!我已经alert()出来看了,放在一个单独的html文档里能完整显示。。。。
我把后台运行的查询页面的form标签去掉则可以运行,但没有返回结果。。。
所以我估计是有form的原因!
那么问题来了,如果后台 查询页面不要form标签,后台查询页面运行不成功,data就也就没有返回数据!加了form标签又要报错,。。。???问题在这了

#6


$(diwShow).html(data)呢
看你描述你是后台组织好了html返回前台的

#7


是的。。。。关键是在IE10下完全没问题,一用到IE8问题就来了

#8


而且你是有form的?那换成下面的样子看看呢,只用form内部的html,可能会造成样式丢失
$(diwShow).html($(data).find('form').html())

#9


引用 6 楼 starfd 的回复:
$(diwShow).html(data)呢
看你描述你是后台组织好了html返回前台的



改为$(divShow).html(data)就正常了。。。。谢放!
但不知道是具体是什么原因!能想到的就是jquery与ie8的兼容性问题,ie10以上能识别,但低版本的就不行了!


结贴