打开一个包含帖子值增强功能的新窗口

时间:2009-12-21 10:09:04

标签: javascript post window new-operator

    var projectWindow;
    function btnNew_Click() {
        var form = document.createElement("form");
        form.setAttribute("target", "projectWindow");
        form.setAttribute("method", "post");
        form.setAttribute("action", "MySite.aspx");

        document.body.appendChild(form);

        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("id", "hiddenValue");
        hiddenField.setAttribute("name", "ID");
        hiddenField.setAttribute("value", "/*get value from javascript*/");

        form.appendChild(hiddenField);

        //Below line I added to fix the new input text field that was visible
        document.getElementById("hiddenValue").style.visibility = 'hidden';

        form.submit();

        //The below line i added to give focus if another window is created
        // The below code does not work
        projectWindow.focus();

        //I also tried this:
        form.focus();
}

我在上面的代码中遇到的问题是从线程获得的: Javascript Post on Form Submit open a new window

是在客户端显示的输入字段我无法隐藏,除了第一次添加我添加的行(可能这是从方法getElementbyId返回的许多值)。

第二个问题是我想在新创建或重新加载的窗口中设置焦点,目前它只适用于新窗口。

2 个答案:

答案 0 :(得分:2)

尝试将其添加到新窗口的onload

projectWindow.onload = function(){projectWindow.focus()};

没有测试此代码,希望这有帮助! 哦!并创建一个隐藏的输入,执行以下操作:

var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");

此外,getElementById不应该返回多个值,只有一个!如果它确实返回多个,那就有问题了。

答案 1 :(得分:0)

补充Victor的答案。函数btnNew_Click总是创建一个新的表单元素。

您必须检查它是否存在,而不是在提交后重新创建或销毁它。