Fenster.open() in ein iPad beim laden eines Frames funktioniert nicht

Ich versuche mich zu ändern, eine Website, die verwendet "Morten JavaScript Baum Menü" zur Anzeige von PDF-Dateien in einen Rahmen gesetzt, die mit dem Adobe Reader plug-in.

Auf dem iPad, der Rahmen ist nutzlos, so dass ich möchten, öffnen Sie das PDF in einem neuen tab. Sie wollen nicht zu verwirren werden mit dem Baum-Menü ich dachte, ich könnte die Verwendung von JavaScript in die web-Seite geöffnet wird im viewer Rahmen, um öffnen Sie eine neue Registerkarte mit der PDF-Datei.

Bin ich mit dem Fenster.open() in $(document).bereit(Funktion() zum öffnen der pdf im neuen tab. Das problem ist, dass Fenster.open() nicht arbeiten wollen, in der das iPad.

Den Körper der HTML sieht normalerweise so aus...

<body>
    <object data="MypdfFileName.pdf#toolbar=1&amp;navpanes=1&amp;scrollbar=0&amp;page=1&amp;view=FitH" 
    type="application/pdf" 
    width="100%" 
    height="100%">
    </object>
</body>

Ich geändert, dass es nur ein div so...

<body>
    <div class="myviewer" ></div>
</body>

Dann verwendet das folgende Skript...

$(document).ready(function() {
    var isMobile = {
        Android : function() {
            return navigator.userAgent.match(/Android/i) ? true : false;
        },
        BlackBerry : function() {
            return navigator.userAgent.match(/BlackBerry/i) ? true : false;
        },
        iOS : function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
        },
        Windows : function() {
            return navigator.userAgent.match(/IEMobile/i) ? true : false;
        },
        any : function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
        }
    };

    if(isMobile.any()) {
        var file = "MypdfFileName.pdf";
            window.open(file);
    }else {
        var markup = "<object   data='MypdfFileName.pdf#toolbar=1&amp;navpanes=1&amp;scrollbar=0&amp;page=1&amp;view=FitH' type='application/pdf' width='100%' height='100%'></object>";
        $('.myviewer').append(markup);
    };
});

Alles funktioniert, außer für die Fenster.open() auf dem iPad. Wenn ich wechseln Dinge um sich herum Witwe.open() funktioniert auf einem computer. In einem anderen Projekt bin ich mit dem Fenster.open() erfolgreich auf das iPad von einem onclick-Funktion.

Ich versucht, mit einer timer-Funktion. Ich habe auch versucht, das hinzufügen einer onclick-Funktion auf die div-und die Buchung einer click-Ereignis. In beiden Fällen arbeiten Sie an einem computer, aber nicht mit einem iPad. Ich bin ratlos.

Ich weiß, es würde mehr Sinn machen, behandeln Sie das ipad in das Baum-Menü Rahmen, aber der code ist so Komplex, ich kann nicht herausfinden, wo zu setzen/ändern der onclick-Ereignis.

Gibt es eine Möglichkeit, ändern Sie das Objekt so, dass es öffnet sich in einem neuen tab?

Ist jeder, der sich genug mit Mortens Baum-Menü-code, der mir sagen kann, wie channge das Ereignis klicken, so dass es öffnet sich das pdf in einem neuen tab statt öffnen einer Seite im frame?

Dank

  • Ich war in der Lage, um die Fenster.öffnen, um zu arbeiten, wenn ich es direkt in die div... onclick="Fenster.open('MypdfFileName.pdf');". Wenn ich Tippen Sie auf das div in das iPad, es funktioniert. Also änderte ich isMobile.any to $('.myviewer').bind("klicken Sie auf "touch"); aber wie die Fenster.öffnen, bind("klicken Sie auf "touch") arbeitet an einem computer, aber nicht wollen, etwas zu tun das iPad. .klicken Sie auf() funktioniert auch nicht. Dies ist wahrscheinlich gut für die Entsendung in eine andere Frage.
  • wahrscheinlich Safari versucht, zu blockieren pop-UPS. Das bedeutet, dass, wenn der Benutzer auf, macht eine Aktion, Fenster.öffnen funktioniert, aber nicht, wenn es "passiert".
  • Gavriel Sie sind ein Genie. Danke. Ich ging zu Einstellungen auf dem iPad und drehte block popups aus und es funktioniert jetzt. Bitte posten Sie Ihre Antwort, so kann ich Ihnen creds.
InformationsquelleAutor user278859 | 2012-06-03
Schreibe einen Kommentar