2017-04-06 8 views
0

versucht, den <html> Tag mit jQuery Ziel, unten ist mein Code:Ziel <html> mit jquery

$('.btn').on('click', function() 
{ 
    $.post('/path/to/window.php', {id: $(this).data('id')}, function(res) 
    { 
     var newWindow = window.open('', 'NEWWINDOW1', 'height=700, width=500'); 
     $(newWindow.document.body).html(res); 
    }); 
}); 

Das ist sehr gut, die einzige Problem ist, res = <html> von oben zu beenden, so dass mein Kopfelement aus res wird übersprungen, weil Kopf im Körper nicht existieren kann (gut kann es, es wird einfach nicht funktionieren). Ich habe versucht, zu ändern .body .html aber ohne Erfolg :(alle Ideen auf, wie es zu tun

Dank

+1

Was möchten Sie erreichen? – Hodrobond

+0

sieht das so aus, als hätte man es lösen können, indem man 'target =" _ blank "' zu einem '' Element hinzufügt. – zzzzBov

+0

Ich habe diesen Satz nicht verstanden: "also mein Kopfelement aus Res wird übersprungen, weil Kopf nicht im Körper existieren kann". Du meinst, du hast die ganze HTML und Header-Tag ist nicht enthalten? –

Antwort

1

Wenn Sie ein Fenster mit einer Seite zu senden Post-Daten erstellen, müssen Sie es tun können, indem ein Formular Zielfenster mit:

$('.btn').on('click', function() 
{ 
    //create a window 
    var newWindow = window.open('', 'NEWWINDOW1', 'height=700, width=500'); 

    //create a form with target NEWWINDOW1 and post 
    $('<form method="post" action="path/to/window.php" target="NEWWINDOW1"> 
     <input type="hidden" name="id" value="'+$(this).data('id')+'"> 
    </form>').submit(); 
} 

EDIT: Ein anderer Weg ist document.write

$('.btn').on('click', function() 
{ 
    $.post('/path/to/window.php', {id: $(this).data('id')}, function(res) 
    { 
     var newWindow = window.open('', 'NEWWINDOW1', 'height=700, width=500'); 
     newWindow.document.write(res); 
    }); 
}); 
+0

Ihre Antwort bearbeiten gewinnt :) gg wp ez – ThisGuyHasTwoThumbs

-1

Ich glaube, Sie werden die head vom body aufzuspalten haben:

var newWindow = window.open('', 'NEWWINDOW1', 'height=700, width=500'); 
$(newWindow.document.body).html('<a class="foo">asdf</a>') 
$(newWindow.document.head).html('<style>.foo{color:blue}</style>') 
0

Versuchen $(newWindow.document.body).html(res); in $(newWindow.document.body. parentElement).html(res); ändern. Da das html Element das übergeordnete Element der body sein wird, sollte das funktionieren.

Auch nur auf Ihre Frage, es sieht aus wie überhaupt kein JavaScript benötigt wird. Es könnte reichen, einfach eine form mit target="_blank" drauf zu haben.