我下载pdf作为附加到iframe后,没有触发加载事件。任何想法?
jQuery.download = function(url, data, method, callback){
var inputs = '';
var iframeX;
var downloadInterval;
if(url && data){
// remove old iframe if has
if($("#iframeX")) $("#iframeX").remove();
// creater new iframe
iframeX= $('<iframe src="[removed]false" name="iframeX" id="iframeX"></iframe>').appendTo('body').hide();
iframeX.load(function(){
callback();
});
//split params into form inputs
$.each(data, function(p, val){
inputs+='<input type="hidden" name="'+ p +'" value="'+ val + '" />';
});
//create form to send request
$('<form action="'+ url +'" method="'+ (method||'post') + '" target="iframeX">'+inputs+'</form>').appendTo('body').submit().remove();
};
};
我的回答:
所以这是迄今为止我要解决的最好的黑客,它使用了弹出“另存为”窗口使主窗口失焦的事实。
var onBlur=function(){
$('#spinner').html("");
}
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusout = onBlur;
} else {
window.onblur = onBlur;
}
答案 0 :(得分:0)
我的示例中没有看到任何PDF加载代码,但我的猜测是框架中运行的PDF查看器不是浏览器,因此它不支持标准HTML事件。
发布另一个问题,询问实现需要什么。然后我们可以帮忙。
[编辑]我的意思是:在哪里加载了可以生成HTML事件的HTML文档?你把PDF放在框架中; PDF不会生成HTML事件。
但解决方案可能是发送两个请求:首先是AJAX请求(在后台运行),然后是POST
表单。服务器必须保持AJAX请求未决,直到PDF被发送到客户端,然后它应该回复AJAX请求。这将为您提供PDF传输时的指示。但它并不完美。