summaryrefslogtreecommitdiffstats
path: root/included.js
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2010-03-14 00:14:00 (GMT)
committerDavid A. Madore <david+git@madore.org>2010-03-14 00:14:00 (GMT)
commitad480a34ed432e6989ccad46268483343bc3e8ef (patch)
tree4628d66d2a8cc78bd57320e6315a9acb5b982b9a /included.js
parentd2e31598c8663f03dd571b53f4cf2e510f1d259b (diff)
downloadblogengine-ad480a34ed432e6989ccad46268483343bc3e8ef.zip
blogengine-ad480a34ed432e6989ccad46268483343bc3e8ef.tar.gz
blogengine-ad480a34ed432e6989ccad46268483343bc3e8ef.tar.bz2
Add <style> and <script> elements.
(With some yuckiness to put CDATA section nicely.)
Diffstat (limited to 'included.js')
-rw-r--r--included.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/included.js b/included.js
new file mode 100644
index 0000000..7aa2a2b
--- /dev/null
+++ b/included.js
@@ -0,0 +1,56 @@
+var textNodeType;
+function textContent(n) {
+ if ( n.nodeType == textNodeType ) {
+ return n.data;
+ } else {
+ var children = n.childNodes;
+ var t = "";
+ for ( var i=0 ; i<children.length ; i++ ) {
+ t = t.concat(textContent(children.item(i)));
+ }
+ return t;
+ }
+}
+function despam() {
+ // MSIE seems to barf... Deactivate for now
+ if ( (/MSIE *[1-6]\./).test(navigator.userAgent) )
+ return;
+ // Now replace as appropriate.
+ var elts = document.getElementsByTagName("span");
+ for ( var i=0 ; i<elts.length ; i++ ) {
+ var elt = elts.item(i);
+ if ( elt.className == "replace-commercial-at" ) {
+ elt.parentNode.replaceChild(document.createTextNode("@"),elt);
+ i--; // Semi-bugware
+ } else if ( elt.className == "replace-full-stop" ) {
+ elt.parentNode.replaceChild(document.createTextNode("."),elt);
+ i--; // Semi-bugware
+ }
+ }
+ // Merge adjacent text nodes.
+ try {
+ document.normalize(); // Your DOM is BROKEN!
+ } catch (exn) {
+ document.documentElement.normalize();
+ }
+ // Next, process all <a> elements having class="despammed-address".
+ elts = document.getElementsByTagName("a");
+ for ( var i=0 ; i<elts.length ; i++ ) {
+ var elt = elts.item(i);
+ if ( elt.className == "despammed-address" ) {
+ var addr = "mailto:".concat(textContent(elt));
+ elt.setAttribute("href",addr); // (abstract)
+ elt.href = addr; // (semantic)
+ }
+ }
+}
+function onLoad() {
+ // Start with some bugware...
+ try {
+ textNodeType = Node.TEXT_NODE;
+ } catch (exn) { // Your DOM is BROKEN!
+ textNodeType = 3;
+ }
+ // Now despam email adresses.
+ despam();
+}