我找到了这个很酷的file-upload repo by mailr你,它叫做FileAPI。 FileAPI使用.swf文件作为调试工具。如何在不嵌入.swf文件的情况下工作?
答案 0 :(得分:1)
如何在不嵌入.swf文件的情况下工作?
他们似乎正在动态更新html页面(现在已经嵌入了SWF)。这意味着使用innerHTML
生成新内容,该内容最初是在html文件中编码的不。您可以在此处查看基本指南 about innerHTML 。
从 FileAPI.js 开始查看 line 3590 ,我们发现他们确实使用innerHTML
来嵌入Flash对象。当触发正确的Javascript函数时,它将被嵌入(动态)。
他们的代码的一小段内容如下:
/**
* Publish flash-object
*
* @param {HTMLElement} el
* @param {String} id
* @param {Object} [opts]
*/
publish: function (el, id, opts){
opts = opts || {};
el.innerHTML = _makeFlashHTML({
id: id
, src: _getUrl(api.flashUrl, 'r=' + api.version)
//, src: _getUrl('http://v.demidov.boom.corp.mail.ru/uploaderfileapi/FlashFileAPI.swf?1')
, wmode: opts.camera ? '' : 'transparent'
, flashvars: 'callback=' + (opts.onEvent || 'FileAPI.Flash.onEvent')
+ '&flashId='+ id
+ '&storeKey='+ navigator.userAgent.match(/\d/ig).join('') +'_'+ api.version
+ (flash.isReady || (api.pingUrl ? '&ping='+api.pingUrl : ''))
+ '&timeout='+api.flashAbortTimeout
+ (opts.camera ? '&useCamera=' + _getUrl(api.flashWebcamUrl) : '')
+ '&debug='+(api.debug?"1":"")
}, opts);
},
... etc etc etc ...
答案 1 :(得分:0)
他们可以使用File API。不要将它与Mail.ru库的名称混淆。看到这个链接: https://developer.mozilla.org/en/docs/Web/API/File https://developer.mozilla.org/ru/docs/Web/API/XMLHttpRequest#sendAsBinary()