Fixing Node element support
This commit is contained in:
parent
05b866c9ad
commit
5b723e8e51
|
@ -11,14 +11,20 @@ exports.translate = function(input, options) {
|
|||
options: options,
|
||||
}
|
||||
|
||||
if (typeof(input) == "object" && input instanceof Node) {
|
||||
request.loop = loopNode;
|
||||
try {
|
||||
if (typeof(input) == "object" && input instanceof Node) {
|
||||
request.loop = loopNode;
|
||||
}
|
||||
else if (typeof(input) == "string") {
|
||||
request.loop = loopString;
|
||||
}
|
||||
else {
|
||||
console.error("Input of type " + typeof(input) + " is unsupported");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (typeof(input) == "string") {
|
||||
request.loop = loopString;
|
||||
}
|
||||
else {
|
||||
console.error("Invalid input type");
|
||||
catch {
|
||||
console.error("Translation of Node objects is unsupported outside of a browser context");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -71,15 +77,28 @@ function loopNode(request, params, method) {
|
|||
child = node.firstChild;
|
||||
while (child) {
|
||||
next = child.nextSibling;
|
||||
loopNode(node, params, method);
|
||||
loopNode({
|
||||
input: child,
|
||||
options: request.options
|
||||
}, params, method);
|
||||
child = next;
|
||||
}
|
||||
break;
|
||||
case 3: /* TEXT_NODE */
|
||||
loopString(node.nodeValue, params, method);
|
||||
loopNodeValue({
|
||||
input: node,
|
||||
options: request.options
|
||||
}, params, method);
|
||||
}
|
||||
}
|
||||
|
||||
/* Iterator for strings belonging to HTML Node elements */
|
||||
function loopNodeValue(request, params, method) {
|
||||
if (request.input.nodeValue.match(params.regexp) == null) { return; }
|
||||
request.input.nodeValue = method(request.input.nodeValue, params);
|
||||
loopNodeValue(request, params, method);
|
||||
}
|
||||
|
||||
/* Iterator for string elements */
|
||||
function loopString(request, params, method) {
|
||||
if (request.input.match(params.regexp) == null) { return; }
|
||||
|
|
Loading…
Reference in New Issue