سؤال

وأنا استخدم علامة iframe لعرض وثيقة قوات الدفاع الشعبي عند النقر على رابط ضمن هذا IFRAME. ومع ذلك، على الأجهزة دون القارئ، فإن ارتباط يدفع للتحميل. هل هناك طريقة، أن هذا العنوان نفسه يمكن أن يدفع المستخدم لتحميل القارئ عندما يكشف أي قارئ بدلا من ذلك؟ ظننت أنني قد رأيت هذا في مكان ما. شكرا!

هل كانت مفيدة؟

المحلول

وهذا يعمل بالنسبة لي في IE:

<script>
var p;
try {
p = new ActiveXObject('AcroExch.Document');
}
catch (e) {
// active x object could not be created
document.write('doesnt look like the PDF plugin is installed...');
}
if (p) {
    document.write('does look like the pdf plugin is installed!');
}
</script>

العثور عليه هنا. ... ولكن تعديل لإزالة " ENDIF "

نصائح أخرى

وأنا أعلم ان هذا السؤال قد أجاب بالفعل، ولكن كان لي مؤخرا لبناء وظيفة يكشف PDF المكونات في الوجود عبر المتصفحات المختلفة. وهذا هو ما حصل. نأمل إذا يساعد.

function hasPdfPlugin() {   
//detect in mimeTypes array
if (navigator.mimeTypes != null && navigator.mimeTypes.length > 0) {        
    for (i = 0; i < navigator.mimeTypes.length; i++) {
        var mtype = navigator.mimeTypes[i];
        if(mtype.type == "application/pdf" && mtype.enabledPlugin)
            return true;
    }
}

//detect in plugins array
if (navigator.plugins != null && navigator.plugins.length > 0) {
    for (i = 0; i < navigator.plugins.length; i++) {
        var plugin = navigator.plugins[i];
        if (plugin.name.indexOf("Adobe Acrobat") > -1
                || plugin.name.indexOf("Adobe Reader") > -1) {
            return true;
        }

    }
} 
// detect IE plugin
if (window.ActiveXObject) {
    // check for presence of newer object       
    try {
        var oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
        if (oAcro7) {
            return true;
        }
    } catch (e) {
    }

    // iterate through version and attempt to create object 
    for (x = 1; x < 10; x++) {
        try {
            var oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');");
            if (oAcro) {
                return true;
            }
        } catch (e) {
        }
    }

    // check if you can create a generic acrobat document
    try {
        var p = new ActiveXObject('AcroExch.Document');
        if (p) {
            return true;
        }
    } catch (e) {
    }

}

// Can't detect in all other cases
return false;
}

وفيما يلي بعض النصوص أن تساعد في الكشف عن وجود أكروبات.

في جافا سكريبت، يمكنك أن تفعل شيئا مثل:

var adobePdfObject = new ActiveXObject("theAdobePdfCOMObject");

وبعد ذلك إما قبض على خطأ فشل أو قيمة الإرجاع adobePdfObject؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top