Frage

Ich verwende eine IFrame ein PDF-Dokument anzuzeigen, wenn ein Link innerhalb dieser IFrame geklickt wird. Doch auf Maschinen ohne die Leser, fordert der Link zum Download bereit. Gibt es eine Möglichkeit, dass die gleiche Verbindung den Benutzer auffordern kann einen Leser zum Download, wenn es statt keinen Leser erkennt? Ich dachte, ich das irgendwo gesehen haben. Dank!

War es hilfreich?

Lösung

Dies funktioniert für mich in 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>

es hier gefunden. ..aber modifiziert die "zu entfernen endif "

Andere Tipps

Ich weiß, diese Frage schon beantwortet worden war, aber ich hatte vor kurzem eine Funktion zu erstellen, die PDF-Plug-in Anwesenheit auf verschiedene Browser erkennt. Das ist, was ich habe. Hoffentlich, wenn hilft.

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;
}

Hier sind ein paar Skripte , die helfen, das Vorhandensein von Acrobat zu erkennen.

In JavaScript können Sie so etwas wie:

var adobePdfObject = new ActiveXObject("theAdobePdfCOMObject");

und dann entweder einen Fehler Fehler fangen oder den Rückgabewert von adobePdfObject?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top