Changeset 1334
- Timestamp:
- 03/19/08 07:55:47 (4 months ago)
- Files:
-
- mochikit/trunk/MochiKit/MochiKit.js (modified) (4 diffs)
- mochikit/trunk/packed/MochiKit/MochiKit.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/trunk/MochiKit/MochiKit.js
r1210 r1334 98 98 } 99 99 var scripts = document.getElementsByTagName("script"); 100 var kXHTMLNSURI = "http://www.w3.org/1999/xhtml"; 101 var kSVGNSURI = "http://www.w3.org/2000/svg"; 102 var kXLINKNSURI = "http://www.w3.org/1999/xlink"; 100 103 var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 101 104 var base = null; … … 104 107 var i; 105 108 for (i = 0; i < scripts.length; i++) { 106 var src = scripts[i].getAttribute("src"); 109 var src; 110 switch (scripts[i].namespaceURI) { 111 case '': // HTML 112 case kXHTMLNSURI: 113 case kXULNSURI: 114 src = scripts[i].getAttribute("src"); 115 break; 116 case kSVGNSURI: 117 src = scripts[i].getAttributeNS(kXLINKNSURI, "href"); 118 break; 119 default: 120 throw new Error("Unsupported namespace"); 121 } 107 122 if (!src) { 108 123 continue; … … 126 141 continue; 127 142 } 128 if (document.documentElement && 129 document.documentElement.namespaceURI == kXULNSURI) { 130 // XUL 131 var s = document.createElementNS(kXULNSURI, 'script'); 143 if (baseElem.namespaceURI == kSVGNSURI || 144 baseElem.namespaceURI == kXULNSURI) { 145 // SVG, XUL 146 /* 147 SVG does not support document.write, so if Safari wants to 148 support SVG tests it should fix its deferred loading bug 149 (see following below). 150 151 */ 152 var s = document.createElementNS(baseElem.namespaceURI, 'script'); 132 153 s.setAttribute("id", "MochiKit_" + base + modules[i]); 133 s.setAttribute("src", uri); 154 if (baseElem.namespaceURI == kSVGNSURI) { 155 s.setAttributeNS(kXLINKNSURI, 'href', uri); 156 } else { 157 s.setAttribute('src', uri); 158 } 134 159 s.setAttribute("type", "application/x-javascript"); 135 160 baseElem.parentNode.appendChild(s); 136 161 } else { 137 // HTML 162 // HTML, XHTML 138 163 /* 139 164 DOM can not be used here because Safari does … … 147 172 148 173 */ 149 document.write('< script src="' + uri +174 document.write('<' + baseElem.nodeName + ' src="' + uri + 150 175 '" type="text/javascript"></script>'); 151 176 } mochikit/trunk/packed/MochiKit/MochiKit.js
r1333 r1334 6633 6633 } 6634 6634 var _726=document.getElementsByTagName("script"); 6635 var _727="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 6635 var _727="http://www.w3.org/1999/xhtml"; 6636 var _728="http://www.w3.org/2000/svg"; 6637 var _729="http://www.w3.org/1999/xlink"; 6638 var _72a="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 6636 6639 var base=null; 6637 var _72 9=null;6638 var _72 a={};6640 var _72c=null; 6641 var _72d={}; 6639 6642 var i; 6640 6643 for(i=0;i<_726.length;i++){ 6641 var src=_726[i].getAttribute("src"); 6644 var src; 6645 switch(_726[i].namespaceURI){ 6646 case "": 6647 case _727: 6648 case _72a: 6649 src=_726[i].getAttribute("src"); 6650 break; 6651 case _728: 6652 src=_726[i].getAttributeNS(_729,"href"); 6653 break; 6654 default: 6655 throw new Error("Unsupported namespace"); 6656 } 6642 6657 if(!src){ 6643 6658 continue; 6644 6659 } 6645 _72 a[src]=true;6660 _72d[src]=true; 6646 6661 if(src.match(/MochiKit.js$/)){ 6647 6662 base=src.substring(0,src.lastIndexOf("MochiKit.js")); 6648 _72 9=_726[i];6663 _72c=_726[i]; 6649 6664 } 6650 6665 } … … 6652 6667 return; 6653 6668 } 6654 var _7 2d=MochiKit.MochiKit.SUBMODULES;6655 for(var i=0;i<_7 2d.length;i++){6656 if(MochiKit[_7 2d[i]]){6669 var _730=MochiKit.MochiKit.SUBMODULES; 6670 for(var i=0;i<_730.length;i++){ 6671 if(MochiKit[_730[i]]){ 6657 6672 continue; 6658 6673 } 6659 var uri=base+_7 2d[i]+".js";6660 if(uri in _72 a){6674 var uri=base+_730[i]+".js"; 6675 if(uri in _72d){ 6661 6676 continue; 6662 6677 } 6663 if(document.documentElement&&document.documentElement.namespaceURI==_727){ 6664 var s=document.createElementNS(_727,"script"); 6665 s.setAttribute("id","MochiKit_"+base+_72d[i]); 6678 if(_72c.namespaceURI==_728||_72c.namespaceURI==_72a){ 6679 var s=document.createElementNS(_72c.namespaceURI,"script"); 6680 s.setAttribute("id","MochiKit_"+base+_730[i]); 6681 if(_72c.namespaceURI==_728){ 6682 s.setAttributeNS(_729,"href",uri); 6683 }else{ 6666 6684 s.setAttribute("src",uri); 6685 } 6667 6686 s.setAttribute("type","application/x-javascript"); 6668 _72 9.parentNode.appendChild(s);6669 }else{ 6670 document.write("< scriptsrc=\""+uri+"\" type=\"text/javascript\"></script>");6687 _72c.parentNode.appendChild(s); 6688 }else{ 6689 document.write("<"+_72c.nodeName+" src=\""+uri+"\" type=\"text/javascript\"></script>"); 6671 6690 } 6672 6691 }
