<html>
<head>
<script>
function open_win()
{
window.open("http://localhost:8080/login","mywindow")
}
</script>
</head>
<body>
<input type="button" value="Open Window" onclick="open_win()">
</body>
</html>
嗨,
点击按钮,我打开new website
(我的网站)
我有两个text fields
(一个文本字段和另一个密码字段),我试图将此值发送到另一个打开的窗口。
但它不能按我的意愿工作。
我尝试了以下方法
1. window.open("http://localhost:8080/login?cid='username'&pwd='password'","mywindow")
2. window.open("http://localhost:8080/login","mywindow")
mywindow.getElementById('cid').value='MyUsername'
mywindow.getElementById('pwd').value='mypassword'
如果有可能,有人可以帮助我吗?
对于不完整的详细信息感到抱歉,这是一个帖子请求。
答案 0 :(得分:10)
如果要传递POST变量,则必须使用HTML表单:
<form action="http://localhost:8080/login" method="POST" target="_blank">
<input type="text" name="cid" />
<input type="password" name="pwd" />
<input type="submit" value="open" />
</form>
或:
如果要在URL中传递GET变量,请在没有单引号的情况下编写它们:
http://yourdomain.com/login?cid=username&pwd=password
这里是如何使用javascrpt变量创建上面的字符串:
myu = document.getElementById('cid').value;
myp = document.getElementById('pwd').value;
window.open("http://localhost:8080/login?cid="+ myu +"&pwd="+ myp ,"MyTargetWindowName");
在包含该URL的文档中,您必须阅读GET参数。如果是在PHP中,请使用:
$_GET['username']
要注意:以这种方式传输密码是一个很大的安全漏洞!
答案 1 :(得分:2)
要连接字符串,请使用+
运算符。
要将数据插入URI,请对其进行编码以获取URI。
为:
var url = "http://localhost:8080/login?cid='username'&pwd='password'"
好:
var url_safe_username = encodeURIComponent(username);
var url_safe_password = encodeURIComponent(password);
var url = "http://localhost:8080/login?cid=" + url_safe_username + "&pwd=" + url_safe_password;
服务器必须处理查询字符串才能使用数据。您无法分配到任意表单字段。
...但是不要触发新窗口或传递URI中的凭据(它们会在肩部受到攻击并且可能会被记录)。
答案 2 :(得分:2)
您可以使用此功能,但仍存在安全问题
<script type="text/javascript">
function fnc1()
{
var a=window.location.href;
username="p";
password=1234;
window.open(a+'?username='+username+'&password='+password,"");
}
</script>
<input type="button" onclick="fnc1()" />
<input type="text" id="atext" />
答案 3 :(得分:1)
You can try this instead
var myu = document.getElementById('myu').value;
var myp = document.getElementById('myp').value;
window.opener.location.href='myurl.php?myu='+ myu +'&myp='+ myp;
注意:请勿使用此方法传递用户名,密码等敏感信息。
答案 4 :(得分:1)
请找到此示例代码,您可以使用带有POST的隐藏表单将数据发送到您的网址,如下所示:
function open_win()
{
var ChatWindow_Height = 650;
var ChatWindow_Width = 570;
window.open("Live Chat", "chat", "height=" + ChatWindow_Height + ", width = " + ChatWindow_Width);
//Hidden Form
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "http://localhost:8080/login");
form.setAttribute("target", "chat");
//Hidden Field
var hiddenField1 = document.createElement("input");
var hiddenField2 = document.createElement("input");
//Login ID
hiddenField1.setAttribute("type", "hidden");
hiddenField1.setAttribute("id", "login");
hiddenField1.setAttribute("name", "login");
hiddenField1.setAttribute("value", "PreethiJain005");
//Password
hiddenField2.setAttribute("type", "hidden");
hiddenField2.setAttribute("id", "pass");
hiddenField2.setAttribute("name", "pass");
hiddenField2.setAttribute("value", "Pass@word$");
form.appendChild(hiddenField1);
form.appendChild(hiddenField2);
document.body.appendChild(form);
form.submit();
}
答案 5 :(得分:0)
我发现这个方法非常有用,我希望这对很多用户也有帮助。
// --> 屏幕 1:
var url = 'screen_2_url';
var id = 'some_ID';
window.open(url + '?id=' + id);
这将打开 Screen 2
标签。在那里你可以得到这样的传递值:
// --> 屏幕 2:
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const id = urlParams.get('id');