Я думал, что решил проблему, однако возникла проблема в Firefox.
Тем не менее, я касаюсь Chrome моего родного браузера, поэтому я рад, что я заставил его работать в этой программе.Это изменение, которое я реализовал в JavaScript:
function talkToServer(address, synch, func) {
func = typeof(func) != 'undefined' ? func : null
xhttp.open(method, address, synch)
xhttp.onreadystatechange = func
xhttp.send()
}
function getXPath(query) {
return document.evaluate(query, xhttp.responseXML, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null)
}
function buildElement(what) {
var xmlDoc = document.implementation.createDocument("", "root", null)
xmlDoc.documentElement.appendChild(xmlDoc.createElement(what))
switch(what) {
case "windowElement":
talkToServer("tagAvailableToAdd.xml", false)
var additionalInfo = getXPath("/root/tag")
var aim = xmlDoc.documentElement.getElementsByTagName("windowElement")[0]
for(i=0;i<additionalInfo.snapshotLength;i++)
aim.appendChild(additionalInfo.snapshotItem(i).cloneNode(true))
talkToServer("cssTemplates.xml", false)
additionalInfo = getXPath("/root/*")
aim.appendChild(xmlDoc.createElement("css"));
aim = aim.getElementsByTagName("css")[0]
for(i=0;i<additionalInfo.snapshotLength;i++)
aim.appendChild(additionalInfo.snapshotItem(i).cloneNode(true))
break;
}
var resultDocumentFragment = xsltProcessor.transformToFragment(xmlDoc, document)
return resultDocumentFragment
}
в xslt, теперь у меня есть вся информация, поэтому нет необходимости импортировать какую-либо внешнюю информацию.
Основная функция - buildElement.Я уверен, что каждый может видеть, что он делает.Его цель - предоставить что-то, что я могу "вставить" в HTML-документ.
В Chrome это работает.В Firefox говорится: «Узел не может использоваться в документе, отличном от того, в котором он был создан« code: »4», и указывает на оператор return в функции getXPath.Я не знаю, как это исправить, но кого это волнует, это просто Firefox (я знаю, что это глупо).В IE это отстой, потому что xhttp - это объект XHttpRequest, но я считаю, что когда я предоставляю ActiveX, он должен давать то, что я хочу.
Если вы считаете, что можете помочь мне с проблемой исправления, напишите комментарий.