refactor 3-more into separate books
This commit is contained in:
parent
bd1d5e4305
commit
87639b2740
423 changed files with 9 additions and 9 deletions
37
4-ajax/12-ajax-iframe/date-activex.view/activex.js
Normal file
37
4-ajax/12-ajax-iframe/date-activex.view/activex.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
var CallbackRegistry = {}; // реестр
|
||||
|
||||
function iframeActiveXGet(url, onSuccess, onError) {
|
||||
|
||||
var iframeOk = false;
|
||||
|
||||
var iframeName = Math.random();
|
||||
var iframe = createActiveXFrame(iframeName, url);
|
||||
|
||||
CallbackRegistry[iframeName] = function(data) {
|
||||
iframeOk = true;
|
||||
onSuccess(data);
|
||||
}
|
||||
|
||||
iframe.onload = function() {
|
||||
iframe.parentNode.removeChild(iframe); // очистка
|
||||
delete CallbackRegistry[iframeName];
|
||||
if (!iframeOk) onError(); // если коллбэк не вызвался - что-то не так
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function createActiveXFrame(name, src) {
|
||||
var htmlfile = window.htmlfile;
|
||||
if (!htmlfile) {
|
||||
htmlfile = window.htmlfile = new ActiveXObject("htmlfile");
|
||||
htmlfile.open();
|
||||
htmlfile.write("<html><body></body></html>");
|
||||
htmlfile.close();
|
||||
htmlfile.parentWindow.CallbackRegistry = CallbackRegistry;
|
||||
}
|
||||
|
||||
src = src || 'javascript:false'; // пустой src
|
||||
htmlfile.body.insertAdjacentHTML('beforeEnd', "<iframe name='"+name+"' src='"+src+"'></iframe>");
|
||||
return htmlfile.body.lastChild; // window in .document.parentWindow
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue