| 22 | | |
|---|
| | 22 | |
|---|
| | 23 | exec: function(code){ |
|---|
| | 24 | if((code+='').blank()) return; |
|---|
| | 25 | |
|---|
| | 26 | var script,scriptId, |
|---|
| | 27 | head = $$('head').first() || $(document.documentElement); |
|---|
| | 28 | |
|---|
| | 29 | if(document.loaded){ |
|---|
| | 30 | script = new Element('script', { type:'text/javascript'}); |
|---|
| | 31 | try { |
|---|
| | 32 | //appendChild(), not insert(), must be used to trigger error |
|---|
| | 33 | script.appendChild( document.createTextNode(code) ); |
|---|
| | 34 | } catch (e) { script.text = code } |
|---|
| | 35 | head.insert(script); |
|---|
| | 36 | } |
|---|
| | 37 | else{ |
|---|
| | 38 | //firefox 2.0.0.2/camino 1.0.4 don't execute inserted scripts synchronously when dom not loaded |
|---|
| | 39 | scriptId = '__prototype_exec_script'; |
|---|
| | 40 | document.write('<script id="'+scriptId+'" type="text/javascript">'+ code +'<\/script>'); |
|---|
| | 41 | script = $(scriptId); |
|---|
| | 42 | } |
|---|
| | 43 | script.remove(); |
|---|
| | 44 | }, |
|---|
| | 45 | |
|---|