表单上的Javascript帖子提交打开一个新窗口 - 如何找到URl

时间:2015-09-04 07:46:22

标签: javascript jquery

我知道这种问题有不同的问题。但我的问题有点不同。

我有代码来执行表单提交和代码以在新窗口中打开它。 但我在这里有一个缺失的部分。

一旦我将值附加到请求体,我不知道如何生成完整的URL.window.open()期望url作为第一个参数,我不知道如何检索它。

<script type="text/javascript">
    function openviewerSelected() {
        var docIds = "{949FFEED-B90B-45DE-BC8A-BDA020D4BCEA}"; 
        if (docIds == null || docIds == "") {
            alert("Select atleast one document");
        }
        else {
            var form = document.createElement("form");

            form.setAttribute("method", "get");
            form.setAttribute("action", "http://aaaa-xxxx.yyyy.com:84/ICNECM/SSOLoginServlet");
            form.setAttribute("target", "_blank");

            var input3 = document.createElement('input');
            input3.type = 'hidden';
            input3.name = 'docInfoItems';//'docIds';
            input3.value = docIds;
            form.appendChild(input3);

            var input4 = document.createElement('input');
            input4.type = 'hidden';
            input4.name = "externalUserId";
            input4.value = "abc";
            form.appendChild(input4);

            document.body.appendChild(form);                
            var url = "What should be the value?"//document.body.appendChild(form);
            var left = (screen.width / 2) - (1000 / 2);
            var right = (screen.height / 2) - (600 / 2);
            var specsDetails = 'width=1000,height=600,location=no,menubar=no,resizable=no,status=no,titlebar=no,toolbar=no,left=' + left + ',top=' + right + ',scrollbars=yes';
            window.open(url, '', specsDetails, '');                
            form.submit();
            debugger;
            document.body.removeChild(form);
        }
    }
</script>

1 个答案:

答案 0 :(得分:0)

好的,从您的评论判断

  

@minitauros,一旦我将输入参数值添加到表单中,我需要获取生成的Url,以便我可以将window.open()方法传递给它。没有window.open()代码,它将在新选项卡中打开。但我希望它在一个新窗口中打开.i.e。为什么specsDetails。

我想说你想在表单提交时打开一个新窗口而不是新选项卡。

如果是这种情况,请考虑以下示例:

&#13;
&#13;
form.addEventListener('submit', function(e) {
e.preventDefault(); // Don't trigger the form submit.

var query_string = input1.name + '=' + input1.value
	+ '&' + input2.name + '=' + input2.value
	+ '&' + input3.name + '=' + input3.value
	+ '&' + input4.name + '=' + input4.value; // etc.
var form_action = this.getAttribute('action');
var url = form_action + '?' + query_string;

// Open your popup.
var left = (screen.width / 2) - (1000 / 2);
var right = (screen.height / 2) - (600 / 2);
var specsDetails = 'width=1000,height=600,location=no,menubar=no,resizable=no,status=no,titlebar=no,toolbar=no,left=' + left + ',top=' + right + ',scrollbars=yes';
window.open(url, '', specsDetails, '');
});
&#13;
&#13;
&#13;