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&navpanes=1&scrollbar=0&page=1&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&navpanes=1&scrollbar=0&page=1&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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
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".
Sollten Sie auch überprüfen Sie Ihre element-und parent-Elemente, und stellen Sie sicher, dass Sie nicht in einer ":hover" pseudo-Klasse auf. Wenn Sie berühren das element erwartet ein "Klick" - Ereignis Eintritt, wird es auslösen des hover-Status auf das element. Wenn Sie berühren Sie erneut, wird es dann Feuer das click-Ereignis.