在JavaScript中打开窗口,插入HTML

wil*_*oup 52 html javascript insert

如何在JavaScript中打开一个新窗口并插入HTML数据而不是仅链接到HTML文件?

art*_*pro 83

我不建议你document.write像其他人建议的那样使用,因为如果你打开这样的窗口两次,你的HTML将被复制2次(或更多).

请改用innerHTML

var win = window.open("", "Title", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=200,top="+(screen.height-400)+",left="+(screen.width-840));
win.document.body.innerHTML = "HTML";
Run Code Online (Sandbox Code Playgroud)

  • 使用innerHTML的好主意! (3认同)
  • 请注意,如果 HTML 中有 <script> 标签,它们将不会被执行。 (2认同)

rah*_*hul 37

您可以使用window.open在javascript中打开一个新窗口/选项卡(根据浏览器设置).

通过使用document.write,您可以将HTML内容写入打开的窗口.


Ode*_*ded 20

当您使用创建新窗口时open,它返回对新窗口的引用,您可以使用该引用通过其document对象写入新打开的窗口.

这是一个例子:

var newWin = open('url','windowName','height=300,width=300');
newWin.document.write('html to write...');
Run Code Online (Sandbox Code Playgroud)


tru*_*ktr 11

以下是使用 HTML Blob 执行此操作的方法,以便您可以控制整个 HTML 文档:

https://codepen.io/trusktr/pen/mdeQbKG?editors=0010

这是代码,但 StackOverflow 阻止打开窗口(请参阅 codepen 示例):

const winHtml = `<!DOCTYPE html>
    <html>
        <head>
            <title>Window with Blob</title>
        </head>
        <body>
            <h1>Hello from the new window!</h1>
        </body>
    </html>`;

const winUrl = URL.createObjectURL(
    new Blob([winHtml], { type: "text/html" })
);

const win = window.open(
    winUrl,
    "win",
    `width=800,height=400,screenX=200,screenY=200`
);
Run Code Online (Sandbox Code Playgroud)

  • 很好的解决方案,这确实帮助我解决了一个项目,在该项目中为新窗口内容添加额外的 HTML 文件会出现问题。只是补充一点,值得在 HTML 的“&lt;head&gt;”中包含“&lt;meta charset="utf-8"&gt;”,以确保它能够呈现任何非拉丁字符。 (2认同)

小智 9

您可以通过以下代码打开一个新的弹出窗口:

var myWindow = window.open("", "newWindow", "width=500,height=700");
//window.open('url','name','specs');
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用myWindow.document.write();或添加HTMLmyWindow.document.body.innerHTML = "HTML";

我建议首先创建一个具有任何名称的新html文件.在这个例子中我正在使用

newFile.html

并确保添加该文件中的所有内容,如bootstrap cdn或jquery,表示所有链接和脚本.然后制作一个带有一些身份证的div或使用你的身体然后给它一个id.在这个例子中,我给id="mainBody"了我的newFile.html <body>标签

<body id="mainBody">
Run Code Online (Sandbox Code Playgroud)

然后使用打开此文件

<script>    
var myWindow = window.open("newFile.html", "newWindow", "width=500,height=700");
</script>
Run Code Online (Sandbox Code Playgroud)

并添加您想要添加到身体标签中的任何内容.使用以下代码

<script>    
 var myWindow = window.open("newFile.html","newWindow","width=500,height=700");  

   myWindow.onload = function(){
     let content = "<button class='btn btn-primary' onclick='window.print();'>Confirm</button>";
   myWindow.document.getElementById('mainBody').innerHTML = content;
    } 

myWindow.window.close();
 </script>
Run Code Online (Sandbox Code Playgroud)

它是如此简单.