Schreiben von html in einem neuen Fenster mit javascript
Ich habe getan, einige der Forschung auf einem neuen Fenster zu öffnen und das schreiben von HTML mit jQuery/JavaScript, und es scheint der richtige Weg, es zu tun ist, um:
Erstellen Sie eine variable für das neue Fenster
var w = window.open();
Einfügen der neuen Daten und die variable
$(w.document.body).html(data);
Ist für mich durchaus Sinn macht. jedoch, wenn ich versuche, integrieren diese in mein Skript ("Daten" werden die Halter für die HTML -) ist es nicht ein neues Fenster öffnen... es sei denn, ich bin nur etwas fehlt einfach, die soweit ich das sagen kann, sieht es toll aus...
function newmore(str) {
var identifier = 4;
//get the history
$.post("ajaxQuery.php", {
identifier : identifier,
vanid : str
},
//ajax query
function(data) {
//response is here
var w = window.open();
$(w.document.body).html(data);
});//end ajax
}
Irgendwelche Ideen?
P. S. es scheint kein Fehler in der Konsole
Bitte nicht Verwendung von popup-Fenstern. Sie sind in der Regel ärgerlich, auch wenn Sie geöffnet auf Anfrage - beachten Sie die inline - "windows" statt.
Es ist für die Darstellung der Geschichte für eine Gesellschaft, glauben Sie mir, die ich nicht mag, aber dann wieder ich nicht die Rechnungen bezahlen. 🙂
Es ist für die Darstellung der Geschichte für eine Gesellschaft, glauben Sie mir, die ich nicht mag, aber dann wieder ich nicht die Rechnungen bezahlen. 🙂
InformationsquelleAutor Nick | 2013-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre neuen Fenster ist wahrscheinlich, blockiert werden, durch den popup-blocker eingebaut in die meisten Browser. Wenn Sie das neue Fenster als direktes Ergebnis einer Benutzeraktion (key click), dann ist der browser in der Regel nicht blockieren. Aber, wenn Sie warten, bis irgendwann später (wie nach einem ajax-Aufruf abgeschlossen ist), dann wird es gesperrt und das ist wahrscheinlich, was Los ist in deinem Fall.
So, der fix ist in der Regel zum erstellen des Fensters sofort in die direkte Antwort auf die Benutzer-Ereignis (nicht warten, bis der ajax-Aufruf abgeschlossen ist), halten Sie die Fenster-handle in eine variable und setzen Sie dann den Inhalt in die Fenster später nach dem ajax-Aufruf abgeschlossen ist.
ja, es ist ein Schmerz, aber es ist auch wirklich schwer für einen browser, um herauszufinden, was ist und ist nicht eine unerwünschte Anzeige der pop-up. Der Fehler liegt bei der schlimmsten ad-services, die versucht haben zu zerstören, die unsere Browser-Erfahrung mit diese popups verursacht und die Browser reagieren auf diese Weise.
Ich sehe, wo es herkommt, eine person, Ruinen es für jeden 🙂 ich könnte wahrscheinlich herausfinden, mit mehr Problemlösung, aber der code, den Sie gab, eröffnet eine neue Registerkarte, aber schrieb nie die Daten. irgendwelche Ideen, was ist oben mit diesem? sorry, ich bin ein php-native im Kampf mit jquery :p
Ich nehme das zurück, werden die Daten geschrieben. aber es immer noch in einem neuen tab geöffnet keine Fenster. nicht eine große Sache, obwohl
Sie werden nicht in der Lage zu kontrollieren, ob das neue Fenster als tab oder Fenster - es ist einfach nicht eine Fähigkeit von Javascript. Es ist bestimmt durch die Einstellungen des Browsers
InformationsquelleAutor jfriend00
Versuchen, statt:
Den "innerHTML" - Eigenschaft des document-Objekts (das ist, was die jQuery -
.html()
verwendet) stellt das HTML-Dokument, das einem neuen Fenster nicht haben. Selbst wenn es das täte, indem Sie ein vollständiges Dokument innen ein HTML-Dokument nicht wirklich sinnvoll. Es ist ein frisch erstelltes Dokument, so können Sie nur schreiben.InformationsquelleAutor Pointy
Diesen Frieden der code funktioniert:
Teilen Sie das einige Parameter beim öffnen von neuen Fenstern.
Aber, wenn möglich, würde ich kaum empfehlen, dass Sie einen anderen Weg, wie Sie jquery UI oder Twitter Bootstrap, das zu tun, so dass Sie nicht durch pop-ups.
InformationsquelleAutor thitemple