- From: Michael A. Puls II <shadow2531@gmail.com>
- Date: Thu, 05 Nov 2009 11:48:23 -0500
- To: "Julian Reschke" <julian.reschke@gmx.de>, "Maciej Stachowiak" <mjs@apple.com>
- Cc: public-html@w3.org
On Thu, 05 Nov 2009 09:40:48 -0500, Julian Reschke <julian.reschke@gmx.de> wrote: > Maciej wrote: >> So you could imagine code like this: >> >> var el1 = document.createElementNS2("{http://www.w3.org/1999/ >> xhtml/}span"); >> var el2 = >> document.getElementsByTagNameNS2("{http://www.w3.org/1999/xhtml/ >> }div")[0]; >> el2.appendChild(el1); > > Yes. As a matter of fact, this *could* be just createElement, as the > curly braces allow to detect the new format of the argument reliably. I tried the following with Opera: (function() { var oldCreateElement = Document.prototype.createElement; Document.prototype.createElement = function() { var args = arguments; if (args.length !== 1 && args.length !== 2) throw new Error("WRONG_ARGUMENTS_ERR"); if (args.length === 2) return this.createElementNS(args[0], args[1]); var pattern = /^\{(.+)\}(.+)$/g; var ref = this; var el = null; args[0].replace(pattern, function(match, ns, name) { el = ref.createElementNS(ns, name); }); return el !== null ? el : oldCreateElement.call(this, args[0]); }; })(); var x = document.createElement("{http://www.w3.org/1999/xhtml}div"); var y = document.createElement("http://www.w3.org/1999/xhtml", "div"); var z = document.createElement("div"); alert(x); alert(y); alert(z); Using the first way seems pretty cool by me fwiw. -- Michael
Received on Thursday, 5 November 2009 16:49:01 UTC