0
我一直在搔痒我的头几天,我无法找到任何解决方案,这个在线甚至与教授。Javascript生成新的XHTML内容无法正常工作
我的工作,需要一些网页是能够动态生成新的HTML内容的同时运行(glassfish4服务器上运行JSF的Web项目) 我发现如何做到这一点的一些资源,但只有它的系统上在标准HTML页面上运行时工作。当我将它转换为XHTML标准时,该函数不再生成任何东西(尽管它仍然被调用,但警告框已确认)。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1"></meta>
<title>Insert title here</title>
</head>
<body>
<SCRIPT type="text/javascript">
function addQuestion() {
alert('yay');
var exam = document.getElementById('divarea');
var temp = document.createElementNS('h', 'button');
temp.setAttribute('value', 'child');
exam.appendChild(temp);
}
</SCRIPT>
<div id="divarea">
</div>
<h:commandButton value="create new stuff" onclick="addQuestion()"/>
</body>
</html>
如果有人可以对这个问题有所了解,将不胜感激。
P.S. 以下是我一直用来尝试故障排除的资源。
Converting javascript to work with XHTML
Creating elements dynamically using javascript
JSF + Facelets的运行在服务器并基于XHTML的源代码的HTML输出和HTML输出发送到客户机(web浏览器)。 JavaScript在客户端运行,并在基于从服务器检索到的HTML源创建的HTML DOM树上工作。想想这个有一段时间,直到你终于明白了什么时,才会感到肾上腺素激增。这是网页开发101.同时借此机会,将鼠标光标置于问题之下的'[xhtml]'标签的顶部,直到出现黑色信息框,然后单击其中的* info *链接以获取更多信息。 – BalusC
注意:对于第一个参数,您应该指定完整的命名空间URI:'document.createElementNS('http://java.sun.com/jsf/html','button')''。你可以在[MDN]上找到[很好的文档](https://developer.mozilla.org/en-US/docs/Web/API/document.createElementNS)。这不会帮助你解决你的问题,正如BalusC所说的那样。 – kapa
你确定现在真的是XHTML吗? XHTML区分大小写,因此你的源代码包含一个未知元素'