使用jQuery的$ .ajax()我想从服务器检索一些信息,然后根据该信息更改iframe的src属性。
类似的东西:
$.ajax(
{
url: "someUrl.aspx/getInfo",
dataType: "json",
data: "{'data':{'data1':'data1'}}",
type: "post",
contentType: "application/json; charset=utf-8",
complete: function(data, stat) {
if (stat == "success" )
{
var src = JSON.parse(jsondata.responseText).d.src
$('#myframe').attr("src",src);
}
}
}
);
我尝试加载的页面正在返回一个PDF文件,因此目标是向用户显示在下载或打开该文件之间选择的对话框。在IE7和8上,浏览器显示信息栏,显示以下消息:“为了保护您的安全,Internet Explorer阻止此站点将文件下载到您的计算机。点击此处查看选项。”
更改iframe的src属性OUTSIDE ajax调用正常,并显示在打开或保存PDF之间进行选择的对话框。
避免显示信息栏的任何变通方法? 提前谢谢。
答案 0 :(得分:1)
如果您不想使用jQuery
,可以试试这个 document.getElementById("myframe").src=src;
试试这个机智jQuery
var iframe = $('#myframe');
$(iframe).attr('src', src)
要打开PDF,请尝试此
window.open(src);
将在新窗口中打开pdf ...但无法避免信息栏....
答案 1 :(得分:0)
我不确定它是否有用,但你可以试试这个:
var alterIframe = function(src){
$('#myframe').attr("src",src);
};
$.ajax(
{
url: "someUrl.aspx/getInfo",
dataType: "json",
data: "{'data':{'data1':'data1'}}",
type: "post",
contentType: "application/json; charset=utf-8",
complete: function(data, stat) {
if (stat == "success" ) {
data = $.parseJSON(data);
setTimeout('alterIframe("' + data.src + '")',300);
}
}
}
);
我希望这可以帮助你;)
答案 2 :(得分:0)
避免iframe和信息栏的另一种方法是不能自动打开PDF。在调用AJAX回调中,创建PDF文件的常规链接,以便用户可以直接单击它。这应该可以防止IE标记下载。