Здравствуйте. У меня есть форма. На форме ссылки на PDF документы при нажатии на которые документ скачиваеться а не открываеться. Поэтому я переопределил нажатие на эти ссылки следующим образом:
function OpenPDF(){
$('a.fileImage').unbind();
$('a.fileImage').on('click', function(){
var FileRequestData = $(this).parent().find('[filerequestdata]').attr('filerequestdata');
var FilePath =$(this).parent().find('[relativepath]').attr('relativepath');
var iURL=FilePath;
var symbols=['+','\\','=',' ','&'];
var cURL='';
for (var i = 0, len = iURL.length; i < len; i++) {
var flag=0;
for(var j=0;j<symbols.length;j++) {
if(iURL[i]==symbols[j]) {
cURL =cURL+ encodeURIComponent(iURL[i]);
flag++; } }
if(flag===0)
{ cURL+=iURL[i];} }
var URL ='http://k2.smartk2.net//Runtime/Runtime/File.ashx?_path='+cURL+'&_filerequestdata='+FileRequestData;
var frog = window.open("","wildebeast","width="+screen.width+",height="+screen.height+",scrollbars=1,resizable=1");
var html = "<html><head></head><body> <embed src='"+URL+"' type='application/pdf' width='100%' height='95%'> </body></html>";
frog.document.open();
frog.document.write(html);
frog.document.close();})
}
Здесь я вытягиваю данные для ссылки, формирую урл и открываю этот файл в новом окне при помощи тега embed. Все работает прекрасно за исключением одного но. PDF открываеться только при условии что у USER установлен плагин для чтения PDF. А если допустить что USER пользуеться IE без плагина, то открываеться просто пустое окно, а это недопустимо.
Я нашел два пути решения:
1) Определять установлен ли у USER плагин для чтения PDF. Если нет то не нужно ничего переопределять и пускай себе скачивает.
2) Подключить какойто PDF.js или тому подобные чтобы независимо от наличия плагина был виден PDF.
После многочасовых страданий мне так и не удалось определить установлен ли в IE11 AdobeReader плагин.
Со вторым способом тоже проблемы. При попытке подключить какойто скрипт вот здеся:
var html = "<html><head></head><body> <embed src='"+URL+"' type='application/pdf' width='100%' height='95%'> </body></html>";
он у меня выполняеться в родительском окне а не в новом.
Буду очень благодарен за советы и идеи.