如果单击 display ,表格会刷新,我该怎么做?目前,只要点击 display ,就会在前一个表格下面创建一个新表格。
当第一次加载页面时,我希望显示整个表(即输入字段下面的整个XML文件(链接到XSL文件)。我该怎么做?< / p>
在IE(而不是Firefox)中,只要用户点击 display 按钮,输入部分就会消失,只显示包含XML内容的表格。如何让IE保留输入字段并显示下面的表格? 这是我的代码片段,其中包含所有必要部分......希望提前感谢您!
<html>
.........
......
<script type="text/javascript">
function filterTable(f)
{
................
.......
if (moz)
{
...........
....
var proc = new XSLTProcessor();
proc.importStylesheet(stylesheet);
var resultFragment = proc.transformToFragment(xmlDoc, document);
document.getElementById("target4").appendChild(resultFragment);
}
else if (ie)
{
.....
......
value.setAttribute("select", "books/scifi" + filter);
value2.setAttribute("select", sorter);
document.write(xmlDoc.transformNode(stylesheet));
}
}
</script>
<form>
...........
....
<input type="button" value="Display" onClick="filterTable(this.form)"/>
</form>
<body id="target4">
</body>
</html>
答案 0 :(得分:0)
write()将覆盖整个文档。使用另一种方法来注入新内容,例如设置元素的innerHTML(DOM方法在这里不起作用,因为IE不允许在文档之间移动节点)。
与评论相关:
您从
获得的表格的标记xmlDoc.transformNode(stylesheet)
您必须首先从此标记创建一个节点:
//create a dummy-wrapper
var wrapper=document.createElement('div');
//insert the markup
wrapper.innerHTML=xmlDoc.transformNode(stylesheet);
//inject the first child into the document
document.getElementById("target4").appendChild(wrapper.firstChild);
//delete the wrapper, we don't need it anymore
delete wrapper;