JavaScript动态创建iframe元素,并且使用POST请求加载页面内容到该iframe中并打印页面(适用于get请求参数过长)

// 创建iframe元素
var iframe = document.createElement("iframe");
iframe.name = "myIframe";
// 将iframe元素添加到文档中
document.body.appendChild(iframe);

// 创建form元素
var form = document.createElement("form");
form.action = "targetUrl";
form.method = "post";
form.target = "myIframe";
form.style.display = "none"; 

// 添加输入字段
var input1 = document.createElement("input");
input1.type = "hidden";
input1.name = "param1";
input1.value = "value1";
form.appendChild(input1);

var input2 = document.createElement("input");
input2.type = "hidden";
input2.name = "param2";
input2.value = "value2";
form.appendChild(input2);

// 将form元素添加到文档中
document.body.appendChild(form);

// 等待 iframe 加载完成后,调用 window.print() 方法进行打印
iframe.onload = function () {
iframe.contentWindow.print()
};
iframe.contentWindow.addEventListener('afterprint', function () {
// 打印完成后,将 iframe 从页面中移除
document.body.removeChild(iframe);
document.body.removeChild(form);
});

// 提交form元素
form.submit();

tips:

form 标签的 target 属性

实例

        <div id="showInfo"></div>
        <form action="1.php" method="post" target="myframe">
            用户名:<input type="text" name="username" id="username"/><br />
            密码:<input type="password" name="password" id="passowrd" />
            <input type="submit" value="提交" id="btn" />
        </form>
        <iframe name="myframe"></iframe>

定义和用法
target属性规定在何处打开 action URL

属性值

 


详解本次案例中的iframe值
form表单的target的用法,是设置返回信息的显示方式,iframe是其中一种,因为那个案例设置的iframe的宽,高,border都为0,是类似做了隐藏,是让它去实现当前页面表单的提交而不进行跳转刷新

没有隐藏的iframe
<iframe name="myframe"></iframe>
//以下是1.php页面简单代码

<iframe name="myframe"></iframe>
//以下是1.php页面简单代码
<?php

    $username=$_POST['username'];
    $password=$_POST['password'];

    echo '用户名:'.$username.' 密码:'.$password;

    ?>

 

 

ps
1.如果此时要获取id为showInfo的div盒子,要通过document.getElementById(“showInfo”).innerHTML=’注册成功’;来获取。
2.如果是target=“_blank”,则这些信息会在新打开的窗口显示。

posted @ 2023-10-25 16:25  曲琦  阅读(926)  评论(0编辑  收藏  举报