Ответ 1
попробовать:
function newwin(url,w,h) {
var win = window.open("","temp","width="+w+",height="+h+",menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=auto,resizable=yes");
win.location.href = url;
win.focus();
}
Здесь проблема, которая встречается только в Internet Explorer (IE). У меня есть страница с ссылками на несколько разных типов файлов. Ссылки из этих файлов выполняют функцию Javascript, которая открывает новое окно и загружает определенный файл. Это отлично работает, если только файл, который мне нужно открыть в новом окне, - это PDF, и в этом случае окно пустое, даже если URL-адрес находится в поле адреса. Обновление этого окна с помощью F5 не помогает. Однако, если я поместил курсор в поле адреса и нажмите <enter>
, загрузка PDF начнется.
Эта проблема возникает только в IE. Я видел это в IE 7 и 8 и использую Adobe Acrobat Reader 9. В Firefox (ПК и Mac) все работает отлично. В Chrome (Mac) загружается PDF файл. В Safari (Mac) он работает. В Opera (Mac) он предлагает мне открыть или сохранить. В принципе, все работает нормально, за исключением IE.
Я искал похожие проблемы и видел некоторые сообщения, на которых было предложено настроить некоторые из параметров Internet на IE. Я пробовал это, но это не помогло, и проблема была совсем не такой.
Здесь я использую функцию Javascript для открытия нового окна.
function newwin(url,w,h) {
win = window.open(url,"temp","width="+w+",height="+h+",menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=auto,resizable=yes");
win.focus();
}
Вы можете видеть, что я передаю URL, а также высоту, h и ширину w окна. Я использовал такую функцию в течение многих лет, и, насколько мне известно, никогда не было проблем.
Я вызываю функцию newwin()
, используя это.
<a href="javascript:newwin('/path/document.pdf',400,300)">document.pdf</a>
(Да, я знаю, что есть другие, лучшие способы, чем использование встроенного JS, и я даже пробовал некоторые из них, потому что у меня не хватало усилий, но ничего не работает.)
Итак, если у кого-то есть идея относительно того, что может вызвать эту проблему, я бы с удовольствием это услышал.
попробовать:
function newwin(url,w,h) {
var win = window.open("","temp","width="+w+",height="+h+",menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=auto,resizable=yes");
win.location.href = url;
win.focus();
}
Я решил эту проблему с невидимым iframe
<div id="iframe" style="display: none">
<iframe id="frm" style="display: none"></iframe>
</div>
И эта логика здесь (используя jquery):
if ($.browser.msie && ($.browser.version < 9.0)) {
frm.location.href = href;
}
else {
window.open(href);
}
Поведение в моем случае точно так же, как если бы документ был открыт во всплывающем окне, поскольку я использую
Content-Disposition: attachment; filename="document.pdf"