Вот рабочий прототип, который я собрал. Я не уверен, что он делает то, что вы ищете, но я думаю, что это может быть близко.
Предположение: Я предполагаю, что вы хотите, чтобы он открывался в плагине Reader для браузера. Если нет, дайте мне знать, и я соответствующим образом скорректирую свой ответ.
Вместо того, чтобы использовать AJAX, почему бы не добавить динамически IFRAME на свою страницу и не отобразить там PDF? Вот рабочий прототип:
<html>
<head>
<style type="text/css">
.inlinePdf {
width: 50%;
height: 50%;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var url = "http://www.irs.gov/pub/irs-pdf/fw4.pdf";
$("<iframe></iframe>").addClass("inlinePdf").attr("src", url).appendTo("#content");
});
</script>
</head>
<body>
<div id="content">
</div>
</body>
</html>
Это загрузит PDF-файл W-4 США (угу ... налоги) в IFRAME. Я делаю это с document.ready, но я мог бы сделать это с помощью нажатия кнопки.
Дайте мне знать, если это близко. Я обновлю соответственно. Надеюсь, это поможет!
Кстати - это сообщение в блоге на Encosia было полезно (оно имеет дело с ASP.NET AJAX, но концепция та же самая).
РЕДАКТИРОВАТЬ: Если вы просто хотите открыть новое окно для PDF (так как вы запрашиваете его через URL), вы можете просто сделать это вместо встроенного IFRAME:
$(document).ready(function() {
var url = "http://www.irs.gov/pub/irs-pdf/fw4.pdf";
window.open(url, "_blank");
});
А если у вас есть контроль на стороне сервера, установите заголовок content-disposition
на attachment
, и вы должны получить диалог открытия / сохранения. Новое окно должно закрыться.