1 mw.tools.externalInstrument = { 2 register: {}, 3 holder: function () { 4 var div = document.createElement('div'); 5 div.className = 'mw-external-tool'; 6 return div; 7 }, 8 prepare: function (name, params) { 9 var frame = document.createElement('iframe'); 10 frame.name = name; 11 /* for callbacks */ 12 var url = mw.external_tool(name); 13 if (typeof params === 'object') { 14 params = $.param(params); 15 } 16 else { 17 params = ""; 18 } 19 frame.src = url + "?" + params; 20 frame.scrolling = 'no'; 21 frame.frameBorder = 0; 22 frame.onload = function () { 23 frame.contentWindow.thisframe = frame; 24 }; 25 return frame; 26 }, 27 init: function (name, callback, holder, params) { 28 if (typeof mw.tools.externalInstrument.register[name] === 'undefined') { 29 var frame = mw.tools.externalInstrument.prepare(name, params); 30 frame.height = 300; 31 mw.tools.externalInstrument.register[name] = frame; 32 if (!holder) { 33 holder = mw.tools.externalInstrument.holder(); 34 mw.$(document.body).append(holder); 35 } 36 mw.$(holder).append(frame); 37 } 38 else { 39 mw.$(mw.tools.externalInstrument.register[name]).unbind('change'); 40 } 41 mw.$(mw.tools.externalInstrument.register[name]).bind('change', function () { 42 Array.prototype.shift.apply(arguments); 43 callback.apply(this, arguments); 44 }); 45 return mw.tools.externalInstrument.register[name]; 46 } 47 }; 48 49 mw.tools.external = function (name, callback, holder, params) { 50 return mw.tools.externalInstrument.init(name, callback, holder, params); 51 }; 52 53 mw.tools._external = function (o) { 54 return mw.tools.external(o.name, o.callback, o.holder, o.params); 55 }; 56
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.