function mathStringEditor(inStr){
inStr = inStr.replace(/\[math\]\(/g,"");
inStr = inStr.substring(0,inStr.length-1);
inStr = inStr.trim();
var xmlhttp;
if(window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var mathBox = parseMath(xmlhttp);
var par = document.createElement("div");
par.appendChild(mathBox);
return par.innerHTML;
}};
xmlhttp.open("GET", inStr, false);
xmlhttp.send();
}
Мне нужна функция выше, чтобы вернуть строку, но она продолжает считаться неопределенной. Я тестировал, что parseMath
успешно возвращает элемент таблицы. Вход - это что-то вроде линий inStr = "[math](mathURL)"
, поэтому первые три строки должны просто уменьшить inStr
до "mathURL"
. Кроме того, я не нарушаю политику «Одинаковый исход», и этот путь относится к документу html, поэтому я уверен, что все в порядке.Я не могу получить функцию, использующую синхронный xmlhttprequest для возврата данных
Моя главная проблема заключается в том, что я не знаю, как правильно использовать xmlhttprequest, поэтому я мог бы не делать этого синхронно. Я читал некоторых людей с неопределенно похожими проблемами, которым говорили использовать обратные вызовы, но я не понимаю, как моя оригинальная функция собирается что-то вернуть с ними.
Строка, которую я возвращаю, войдет в большую внутреннюю область HTTML, поэтому я не могу просто подключить ее к документу. Плохая форма, которую я знаю, но пока я не хочу переписывать остальную часть моего кода. Я знаю, что у меня есть что-то в этом направлении, чтобы работать раньше, но я думаю, я не знаю, как я получил его на работу. Разве это имеет значение, если я использую responseXML
против responseText
? Я использую responseXML
в parseMath.
Я тоже нахожусь в firefox, если это имеет значение.