如何打开一个新窗口并使用jQuery将html插入其中?

时间:2012-02-22 16:58:29

标签: javascript jquery html

我正在尝试从javascript打开一个新窗口,但没有任何内容插入到html中:

var callScriptText = $('#callScriptText').html();
var url = '/Action/CallScript/?callScript=';

// Open the current call script in a new window
var openWindow = window.open(url, 'callScriptPopup', 'width = 500, height = 500');
$(openWindow).html(callScriptText);

有谁知道为什么?

5 个答案:

答案 0 :(得分:109)

以下是使用jQuery打开包含内容的新窗口的示例

<script>
function nWin() {
  var w = window.open();
  var html = $("#toNewWindow").html();

    $(w.document.body).html(html);
}

$(function() {
    $("a#print").click(nWin);
});​
</script>

<div id="toNewWindow">
    <p>Your content here</p>
</div>

<a href="javascript:;" id="print">Open</a>​

编辑: 对于那些说这段代码不起作用的人来说,这是一个尝试它的jsfiddle http://jsfiddle.net/8dXvt/

答案 1 :(得分:81)

试试这个:

var x=window.open();
x.document.open();
x.document.write('content');
x.document.close();

我发现它适用于Chrome和IE。

答案 2 :(得分:24)

以@Emre的回答为基础。

使用javascript,你可以链接,所以我只是将代码修改为:

var x=window.open();
x.document.open().write('content');
x.close();

此外,要强制它到新窗口(而不是新选项卡),请给出第一行尺寸。但它必须是第三个论点。所以将第一行改为:

var x=window.open('','','width=600, height=600');

答案 3 :(得分:3)

尝试:

var x = window.open('', '', 'location=no,toolbar=0');
x.document.body.innerHTML = 'content';

答案 4 :(得分:0)

var codeContents = $("#contentsfornewWindow").html()
var win = window.open('', 'title', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=1000,height=1000,left=200,top=70');

win.document.body.innerHTML = codeContents;

VS:

win.document.write(codeContents);

我注意到是否有iframe之类的YouTube影片,win.document.write会加载iframe,而document.body.innerHTML不会!