Я уже несколько дней царапаю себе голову этим, и я не могу найти какое-либо решение для этого онлайн или даже с профессором.Javascript для создания нового содержимого XHTML
Я работаю над системой, которая требует, чтобы некоторые страницы могли динамически генерировать новый HTML-контент во время работы (веб-проект JSF, работающий на сервере glassfish4) Я нашел некоторые ресурсы о том, как это сделать, но это только работал при работе на стандартной 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 работает в сервере и производит вывод HTML, основанный на исходном коде XHTML и отправляет вывод HTML клиенту (WebBrowser). JavaScript работает на клиенте и работает над деревом HTML DOM, созданным на основе источника HTML, полученного с сервера. Подумайте об этом некоторое время, пока не получите прилив адреналина, когда вы, наконец, действительно поймете что-нибудь. Это веб-разработка 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 чувствителен к регистру, поэтому ваш источник содержит неизвестный элемент '