1WORKS?/* W3Data ver 1.1 by W3Schools.com */ var w3DataObject = {}; function w3DisplayData(id, data) { var htmlObj, htmlTemplate, html, arr = [], a, l, rowClone, x, j, i, ii, cc, repeat, repeatObj, repeatX = ""; htmlObj = document.getElementById(id); htmlTemplate = w3InitTemplate(id, htmlObj); html = htmlTemplate.cloneNode(true); arr = w3GetElementsByAttribute(html, "w3-repeat"); l = arr.length; for (j = (l-1); j >= 0; j -= 1) { cc = arr[j].getAttribute("w3-repeat").split(" "); if (cc.length == 1) { repeat = cc[0]; } else { repeatX = cc[0]; repeat = cc[2]; } arr[j].removeAttribute("w3-repeat"); repeatObj = data[repeat]; if (repeatObj && typeof repeatObj == "object" && repeatObj.length != "undefined") { i = 0; for (x in repeatObj) { i += 1; rowClone = arr[j]; rowClone = w3NeedleInHaystack(rowClone, "element", repeatX, repeatObj[x]); a = rowClone.attributes; for (ii = 0; ii < a.length; ii += 1) { a[ii].value = w3NeedleInHaystack(a[ii], "attribute", repeatX, repeatObj[x]).value; } (i === repeatObj.length) ? arr[j].parentNode.replaceChild(rowClone, arr[j]) : arr[j].parentNode.insertBefore(rowClone, arr[j]); } } else { console.log("w3-repeat must be an array. " + repeat + " is not an array."); continue; } } html = w3NeedleInHaystack(html, "element"); htmlObj.parentNode.replaceChild(html, htmlObj); function w3InitTemplate(id, obj) { var template; template = obj.cloneNode(true); if (w3DataObject.hasOwnProperty(id)) {return w3DataObject[id];} w3DataObject[id] = template; return template; } function w3GetElementsByAttribute(x, att) { var arr = [], arrCount = -1, i, l, y = x.getElementsByTagName("*"), z = att.toUpperCase(); l = y.length; for (i = -1; i < l; i += 1) { if (i == -1) {y[i] = x; } if (y[i].getAttribute(z) !== null) {arrCount += 1; arr[arrCount] = y[i];} } return arr; } function w3NeedleInHaystack(elmnt, typ, repeatX, x) { var value, rowClone, pos1, haystack, pos2, needle = [], needleToReplace, i, cc, r; rowClone = elmnt.cloneNode(true); pos1 = 0; while (pos1 > -1) { haystack = (typ == "attribute") ? rowClone.value : rowClone.innerHTML; pos1 = haystack.indexOf("{{", pos1); if (pos1 === -1) {break; } pos2 = haystack.indexOf("}}", pos1 + 1); needleToReplace = haystack.substring(pos1 + 2, pos2); needle = needleToReplace.split("||"); value = undefined; for (i = 0; i < needle.length; i += 1) { needle[i] = needle[i].replace(/^\s+|\s+$/gm,''); //trim //value = ((x && x[needle[i]]) || (data && data[needle[i]])); if (x) {value = x[needle[i]];} if (value == undefined && data) {value = data[needle[i]];} if (value == undefined) { cc = needle[i].split("."); if (cc[0] == repeatX) {value = x[cc[1]]; } } if (value == undefined) { if (needle[i] == repeatX) {value = x; } } if (value == undefined) { if (needle[i].substr(0,1) == '"') { value = needle[i].replace(/"/g, ""); } else if (needle[i].substr(0,1) == "'") { value = needle[i].replace(/'/g, ""); } } if (value != undefined) {break;} } if (value != undefined) { r = "{{" + needleToReplace + "}}"; if (typ == "attribute") { rowClone.value = rowClone.value.replace(r, value); } else { w3ReplaceHTML(rowClone, r, value); } } pos1 = pos1 + 1; } return rowClone; } function w3ReplaceHTML(a, r, result) { var b, l, i, a, x, y, j, ll, nam; if (a.hasAttributes()) { b = a.attributes; l = b.length; for (i = 0; i < l; i += 1) { if (b[i].value.indexOf(r) > -1) {b[i].value = b[i].value.replace(r, result); } } } x = a.getElementsByTagName("*"); l = x.length; a.innerHTML = a.innerHTML.replace(r, result); } } function w3IncludeHTML() { var z, i, a, file, xhttp; z = document.getElementsByTagName("*"); for (i = 0; i < z.length; i++) { if (z[i].getAttribute("w3-include-html")) { a = z[i].cloneNode(false); file = z[i].getAttribute("w3-include-html"); var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { a.removeAttribute("w3-include-html"); a.innerHTML = xhttp.responseText; z[i].parentNode.replaceChild(a, z[i]); w3IncludeHTML(); } } xhttp.open("GET", file, true); xhttp.send(); return; } } } function w3Http(target, readyfunc, xml, method) { var httpObj; if (!method) {method = "GET"; } if (window.XMLHttpRequest) { httpObj = new XMLHttpRequest(); } else if (window.ActiveXObject) { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } if (httpObj) { if (readyfunc) {httpObj.onreadystatechange = readyfunc; } httpObj.open(method, target, true); httpObj.send(xml); } } 1WORKSThis file is for testing include processes. This is an h1 heading in includetest.txt This is an zzzh1 pseudo tag heading in includetest.txt 2WORKSThis file is for testing include processes. This is an h1 heading in includetest.txt This is an zzzh1 pseudo tag heading in includetest.txt 1WORKS?/* W3Data ver 1.1 by W3Schools.com */ var w3DataObject = {}; function w3DisplayData(id, data) { var htmlObj, htmlTemplate, html, arr = [], a, l, rowClone, x, j, i, ii, cc, repeat, repeatObj, repeatX = ""; htmlObj = document.getElementById(id); htmlTemplate = w3InitTemplate(id, htmlObj); html = htmlTemplate.cloneNode(true); arr = w3GetElementsByAttribute(html, "w3-repeat"); l = arr.length; for (j = (l-1); j >= 0; j -= 1) { cc = arr[j].getAttribute("w3-repeat").split(" "); if (cc.length == 1) { repeat = cc[0]; } else { repeatX = cc[0]; repeat = cc[2]; } arr[j].removeAttribute("w3-repeat"); repeatObj = data[repeat]; if (repeatObj && typeof repeatObj == "object" && repeatObj.length != "undefined") { i = 0; for (x in repeatObj) { i += 1; rowClone = arr[j]; rowClone = w3NeedleInHaystack(rowClone, "element", repeatX, repeatObj[x]); a = rowClone.attributes; for (ii = 0; ii < a.length; ii += 1) { a[ii].value = w3NeedleInHaystack(a[ii], "attribute", repeatX, repeatObj[x]).value; } (i === repeatObj.length) ? arr[j].parentNode.replaceChild(rowClone, arr[j]) : arr[j].parentNode.insertBefore(rowClone, arr[j]); } } else { console.log("w3-repeat must be an array. " + repeat + " is not an array."); continue; } } html = w3NeedleInHaystack(html, "element"); htmlObj.parentNode.replaceChild(html, htmlObj); function w3InitTemplate(id, obj) { var template; template = obj.cloneNode(true); if (w3DataObject.hasOwnProperty(id)) {return w3DataObject[id];} w3DataObject[id] = template; return template; } function w3GetElementsByAttribute(x, att) { var arr = [], arrCount = -1, i, l, y = x.getElementsByTagName("*"), z = att.toUpperCase(); l = y.length; for (i = -1; i < l; i += 1) { if (i == -1) {y[i] = x; } if (y[i].getAttribute(z) !== null) {arrCount += 1; arr[arrCount] = y[i];} } return arr; } function w3NeedleInHaystack(elmnt, typ, repeatX, x) { var value, rowClone, pos1, haystack, pos2, needle = [], needleToReplace, i, cc, r; rowClone = elmnt.cloneNode(true); pos1 = 0; while (pos1 > -1) { haystack = (typ == "attribute") ? rowClone.value : rowClone.innerHTML; pos1 = haystack.indexOf("{{", pos1); if (pos1 === -1) {break; } pos2 = haystack.indexOf("}}", pos1 + 1); needleToReplace = haystack.substring(pos1 + 2, pos2); needle = needleToReplace.split("||"); value = undefined; for (i = 0; i < needle.length; i += 1) { needle[i] = needle[i].replace(/^\s+|\s+$/gm,''); //trim //value = ((x && x[needle[i]]) || (data && data[needle[i]])); if (x) {value = x[needle[i]];} if (value == undefined && data) {value = data[needle[i]];} if (value == undefined) { cc = needle[i].split("."); if (cc[0] == repeatX) {value = x[cc[1]]; } } if (value == undefined) { if (needle[i] == repeatX) {value = x; } } if (value == undefined) { if (needle[i].substr(0,1) == '"') { value = needle[i].replace(/"/g, ""); } else if (needle[i].substr(0,1) == "'") { value = needle[i].replace(/'/g, ""); } } if (value != undefined) {break;} } if (value != undefined) { r = "{{" + needleToReplace + "}}"; if (typ == "attribute") { rowClone.value = rowClone.value.replace(r, value); } else { w3ReplaceHTML(rowClone, r, value); } } pos1 = pos1 + 1; } return rowClone; } function w3ReplaceHTML(a, r, result) { var b, l, i, a, x, y, j, ll, nam; if (a.hasAttributes()) { b = a.attributes; l = b.length; for (i = 0; i < l; i += 1) { if (b[i].value.indexOf(r) > -1) {b[i].value = b[i].value.replace(r, result); } } } x = a.getElementsByTagName("*"); l = x.length; a.innerHTML = a.innerHTML.replace(r, result); } } function w3IncludeHTML() { var z, i, a, file, xhttp; z = document.getElementsByTagName("*"); for (i = 0; i < z.length; i++) { if (z[i].getAttribute("w3-include-html")) { a = z[i].cloneNode(false); file = z[i].getAttribute("w3-include-html"); var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { a.removeAttribute("w3-include-html"); a.innerHTML = xhttp.responseText; z[i].parentNode.replaceChild(a, z[i]); w3IncludeHTML(); } } xhttp.open("GET", file, true); xhttp.send(); return; } } } function w3Http(target, readyfunc, xml, method) { var httpObj; if (!method) {method = "GET"; } if (window.XMLHttpRequest) { httpObj = new XMLHttpRequest(); } else if (window.ActiveXObject) { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } if (httpObj) { if (readyfunc) {httpObj.onreadystatechange = readyfunc; } httpObj.open(method, target, true); httpObj.send(xml); } } 3WTH ONE FAILED INCLUDE, ALL SUBSEQUENT INCLUDES SEEM TO FAIL!!!!!!!!!!!!!!!!!!!! 1WORKSTHIS A SPAN 4 5 Includes FAIL if -- - A prior include has failed?? - Can IE8 create mht or _files that reveals the included????????????? 1WORKSTHIS A SPAN GONNA TRY TO INCLUDE THE w3data.js CODE TEXT itself RIGHT HERE: 1WORKSTHIS A SPAN 67891021229192100 ?1WORKS?1WORKS ?2WORKS