
Summary: This makes typing into the box bearable with break-on-exception enabled. Test Plan: Typed into box; I didn't blow up. Reviewers: emily Reviewed By: emily Subscribers: jessie Differential Revision: http://phabricator.khanacademy.org/D13314
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
function init() {
|
|
var input = document.getElementById("input");
|
|
var math = document.getElementById("math");
|
|
var permalink = document.getElementById("permalink");
|
|
|
|
if ("oninput" in input) {
|
|
input.addEventListener("input", reprocess, false);
|
|
} else {
|
|
input.attachEvent("onkeyup", reprocess);
|
|
}
|
|
|
|
if ("addEventListener" in permalink) {
|
|
permalink.addEventListener("click", function() {
|
|
window.location.search = "?text=" + encodeURIComponent(input.value);
|
|
});
|
|
} else {
|
|
permalink.attachEvent("click", function() {
|
|
window.location.search = "?text=" + encodeURIComponent(input.value);
|
|
});
|
|
}
|
|
|
|
var match = (/(?:^\?|&)text=([^&]*)/).exec(window.location.search);
|
|
if (match) {
|
|
input.value = decodeURIComponent(match[1]);
|
|
}
|
|
|
|
reprocess();
|
|
|
|
function reprocess() {
|
|
try {
|
|
katex.render(input.value, math);
|
|
} catch (e) {
|
|
if (e.__proto__ == katex.ParseError.prototype) {
|
|
console.error(e);
|
|
} else {
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
init();
|