Rev | Line | |
---|
[483] | 1 | define([ |
---|
| 2 | "dojo/_base/kernel", |
---|
| 3 | "dojo/_base/declare", |
---|
| 4 | "dojo/_base/window", |
---|
| 5 | "dojo/dom-construct" |
---|
| 6 | ], function(kernel, declare, win, domConstruct){ |
---|
| 7 | // module: |
---|
| 8 | // dojox/mobile/_ExecScriptMixin |
---|
| 9 | |
---|
| 10 | return declare("dojox.mobile._ExecScriptMixin", null, { |
---|
| 11 | // summary: |
---|
| 12 | // Mixin for providing script execution capability to content handlers. |
---|
| 13 | // description: |
---|
| 14 | // This module defines the execScript method, which is called |
---|
| 15 | // from an HTML content handler. |
---|
| 16 | |
---|
| 17 | execScript: function(/*String*/ html){ |
---|
| 18 | // summary: |
---|
| 19 | // Finds script tags and executes the script. |
---|
| 20 | // html: String |
---|
| 21 | // The HTML input. |
---|
| 22 | // returns: String |
---|
| 23 | // The given HTML text from which <script> blocks are removed. |
---|
| 24 | var s = html.replace(/\f/g, " ").replace(/<\/script>/g, "\f"); |
---|
| 25 | s = s.replace(/<script [^>]*src=['"]([^'"]+)['"][^>]*>([^\f]*)\f/ig, function(ignore, path){ |
---|
| 26 | domConstruct.create("script", { |
---|
| 27 | type: "text/javascript", |
---|
| 28 | src: path}, win.doc.getElementsByTagName("head")[0]); |
---|
| 29 | return ""; |
---|
| 30 | }); |
---|
| 31 | |
---|
| 32 | s = s.replace(/<script>([^\f]*)\f/ig, function(ignore, code){ |
---|
| 33 | kernel.eval(code); |
---|
| 34 | return ""; |
---|
| 35 | }); |
---|
| 36 | |
---|
| 37 | return s; |
---|
| 38 | } |
---|
| 39 | }); |
---|
| 40 | }); |
---|
Note: See
TracBrowser
for help on using the repository browser.