2017-04-06 46 views
0

試圖針對<html>標籤使用jQuery,下面是我的代碼:目標<html>使用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); 
    }); 
}); 

這是偉大的,唯一的問題是,RES = <html>從上完成,所以我從水庫頭元素正在被跳過,因爲頭部不能存在於身體內(它可以,它不會工作)。我試圖改變。體爲.html但無濟於事:(關於如何做到這一點的任何想法

感謝

+1

你想完成什麼? – Hodrobond

+0

這看起來好像可以通過向'

'元素添加'target =「_ blank」'來解決。 – zzzzBov

+0

我不明白這句話:「所以我的頭元素從水庫被跳過,因爲頭部不能存在於身體中」。你的意思是你有整個HTML和標題不包括在內? –

回答

1

如果你需要創建一個頁面發送POST數據,你可以用它做一個窗口的形式提交使用目標窗口:

$('.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(); 
} 

編輯:另一種方式是使用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

您的編輯答案勝利:) gg wp ez – ThisGuyHasTwoThumbs

-1

我相信你就必須拆分headbody

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

嘗試改變$(newWindow.document.body).html(res);$(newWindow.document.body. parentElement).html(res);。由於html元素將是body的父級元素,因此應該有效。

此外,只看你的問題,它看起來像根本不需要JavaScript。它可能只是簡單地有一個formtarget="_blank"就可以了。