我正在使用jQuery 1.5.2尝试将div从一个源动态加载到容器文档中的div中。当我在Firefox 4上加载文档时,文档会加载消息“Got it!”,但是当我在IE9上加载它时,当它尝试{1}将一个div放到另一个div时,我得到一个HIERARCHY_REQUEST_ERROR。 p>
这是容器:
.append()
这是线束脚本:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/static/harness-script.js"></script>
</head>
<body>
<div id="main_cont">
</div>
</body>
</html>
widget.xhtml非常简单:
function load_stuff(widget_source) {
var node = $(widget_source.documentElement).clone();
// add the node to the main content
$('#main_cont').append(node);
}
// Load and init the widget
$(document).ready(function() {
resp = $.get(
'/static/widget.xhtml',
load_stuff
);
});
如何重新编写它以使其跨浏览器工作?
答案 0 :(得分:0)
jQuery团队的官方回答是loading XHTML into a DOM is not possible under IE。
我找到的唯一解决方案是进行服务器端浏览器检测,并在浏览器为IE时将内容传输为“text / html”而不是“application / xhtml + xml”。
我想也可以编写一个客户端处理程序,它将不在IE上附加节点,并在IE上显式构建一个DOM,但是这对我来说不值得,因为我有权访问到服务器端。