Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:从子html文档调用函数_Javascript_Html - Fatal编程技术网

JavaScript:从子html文档调用函数

JavaScript:从子html文档调用函数,javascript,html,Javascript,Html,在子html文档中执行javascript函数的最佳方式是什么 在我的父文档中,我有以下内容: function validate() { debugger; var firstName = frm.FirstName.value; var lastName = frm.LastName.value; var email = frm.Email.value; if (!validateFirstName(first

在子html文档中执行javascript函数的最佳方式是什么

在我的父文档中,我有以下内容:

function validate() {
        debugger;
        var firstName = frm.FirstName.value;
        var lastName = frm.LastName.value;
        var email = frm.Email.value;

        if (!validateFirstName(firstName)) {
            return false;
        }
        if (!validateLastName(lastName)) {
            return false;
        }
        if (!validateEmail(email)) {
            return false;
        }

        var disp = window.open("results.html");
        disp.window.setData(firstName, lastName, email, frm.Comments);

        if (disp.confirm("Is this information correct?")) {
            disp.close();
        }
    }
<script type="text/javascript">
    function setData(firstName, lastName, email, comments) {
        frm.FirstName.value = firstName;
        frm.LastName.value = lastName;
        frm.Email.value = email;
        frm.Comments.value = comments;
    }
</script>
在子文档(results.html)中,我有以下内容:

function validate() {
        debugger;
        var firstName = frm.FirstName.value;
        var lastName = frm.LastName.value;
        var email = frm.Email.value;

        if (!validateFirstName(firstName)) {
            return false;
        }
        if (!validateLastName(lastName)) {
            return false;
        }
        if (!validateEmail(email)) {
            return false;
        }

        var disp = window.open("results.html");
        disp.window.setData(firstName, lastName, email, frm.Comments);

        if (disp.confirm("Is this information correct?")) {
            disp.close();
        }
    }
<script type="text/javascript">
    function setData(firstName, lastName, email, comments) {
        frm.FirstName.value = firstName;
        frm.LastName.value = lastName;
        frm.Email.value = email;
        frm.Comments.value = comments;
    }
</script>

函数setData(名字、姓氏、电子邮件、注释){
frm.FirstName.value=FirstName;
frm.LastName.value=LastName;
frm.Email.value=电子邮件;
frm.Comments.value=注释;
}
这是行不通的。请告诉我如何使用简单的javascript和html(无JQuery等)实现这一点


谢谢

您应该使用开启器属性。它返回对创建窗口的窗口的引用

使用window.open()打开窗口时,可以从目标窗口使用此属性返回源(父)窗口的详细信息


函数setData(名字、姓氏、电子邮件、注释){
opener.frm.FirstName.value=FirstName;
opener.frm.LastName.value=LastName;
opener.frm.Email.value=电子邮件;
opener.frm.Comments.value=注释;
}

第二个html文档(子文档)中的.js函数“setData()”,我希望在验证父文档的表单后调用该函数。它将设置数据,用户将确认是否正常。请注意,这不是现实生活中的问题(谢天谢地)。。但这是一个不寻常的理论问题,对于我正在学习的课程,我必须解决。谢谢,但我想设置从父窗体到子窗体的值。我试过这个:window.onload=function(){frm.FirstName.value=opener.frm.FirstName.value;//等等……但是没有用。有什么想法吗?变量
frm
也引用子文档中的
元素?是的。我可以更改“frm”名称以减少混淆我猜..但是有2个frm元素..1在父文档中,1在子文档中..两个文档也有相同的布局..唯一的区别是子文档是只读的(这是一个确认屏幕),所以在子文档中可以执行:
window.onload=function(){var childFrm=document.getElementById(“theIdOfYourChildForm”);childFrm.FirstName.value=opener.frm.FirstName.value;//etc
很抱歉这不起作用..但别担心;我采取了不同的方法:
var disp=window.open(“,”results”);
然后我使用了
disp.document.write(”
…等等。所以它不太理想。但是它很有效,可以让我通过实践考试(如果有)。无论如何,谢谢你的尝试。