Skip to content

Commit 922b5bc

Browse files
committed
Fix parsing issue in echo() (thanks EdorFaus!) and some minor formatting standards changes
1 parent b1d7af3 commit 922b5bc

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

functions/strings/echo.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ function echo () {
1010
// + improved by: Brett Zamir (http://brett-zamir.me)
1111
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
1212
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
13+
// + bugfixed by: EdorFaus
1314
// % note 1: If browsers start to support DOM Level 3 Load and Save (parsing/serializing),
1415
// % note 1: we wouldn't need any such long code (even most of the code below). See
1516
// % note 1: link below for a cross-browser implementation in JavaScript. HTML5 might
@@ -22,20 +23,18 @@ function echo () {
2223
// * example 1: echo('<div><p>abc</p><p>abc</p></div>');
2324
// * returns 1: undefined
2425

25-
var arg = '', argc = arguments.length, argv = arguments, i = 0;
26-
var win = this.window;
27-
var d = win.document;
28-
var ns_xhtml = 'http://www.w3.org/1999/xhtml';
29-
var ns_xul = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'; // If we're in a XUL context
30-
31-
var holder;
26+
var arg = '', argc = arguments.length, argv = arguments, i = 0, holder,
27+
win = this.window,
28+
d = win.document,
29+
ns_xhtml = 'http://www.w3.org/1999/xhtml',
30+
ns_xul = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'; // If we're in a XUL context
3231

3332
var stringToDOM = function (str, parent, ns, container) {
3433
var extraNSs = '';
3534
if (ns === ns_xul) {
36-
extraNSs = ' xmlns:html="'+ns_xhtml+'"';
35+
extraNSs = ' xmlns:html="' + ns_xhtml + '"';
3736
}
38-
var stringContainer = '<'+container+' xmlns="'+ns+'"'+extraNSs+'>'+str+'</'+container+'>';
37+
var stringContainer = '<' + container + ' xmlns="' + ns + '"' + extraNSs + '>' + str + '</'+container+'>';
3938
if (win.DOMImplementationLS &&
4039
win.DOMImplementationLS.createLSInput &&
4140
win.DOMImplementationLS.createLSParser) { // Follows the DOM 3 Load and Save standard, but not
@@ -52,8 +51,8 @@ function echo () {
5251
// If we're in XHTML, we'll try to allow the XHTML namespace to be available by default
5352
try {
5453
var fc = new DOMParser().parseFromString(stringContainer, 'text/xml');
55-
if (!fc || !fc.documentElement ||
56-
fc.documentElement.localName !== 'parsererror' ||
54+
if (fc && fc.documentElement &&
55+
fc.documentElement.localName !== 'parsererror' &&
5756
fc.documentElement.namespaceURI !== 'http://www.mozilla.org/newlayout/xml/parsererror.xml') {
5857
return fc.documentElement.firstChild;
5958
}

0 commit comments

Comments
 (0)