11
<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(私のWebサイト)を開いています.2つtext fields(1つのテキストフィールドと別のパスワードフィールド)があります。この値を他の開いているウィンドウに送信しようとしています。

しかし、それは私が望むように機能していません。

私は次の方法を試しました

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'

これが可能かどうか、誰か助けてもらえますか??

詳細が不完全で申し訳ありません。投稿リクエストです。

4

6 に答える 6

13

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']

注意: そのようにパスワードを送信することは、重大なセキュリティ リークです!

于 2012-11-06T12:18:25.363 に答える
3

このコード例を見つけてください。以下のように、POST で隠しフォームを使用して、その URL にデータを送信できます。

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();

}
于 2014-06-03T10:32:57.303 に答える
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"  />
于 2012-11-06T12:22:42.287 に答える
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;

注: このメソッドを使用して、ユーザー名やパスワードなどの機密情報を渡さないでください。

于 2013-03-19T04:48:47.280 に答える
1

文字列を連結するには、+演算子を使用します。

データを 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 で資格情報を渡したりしないでください (これらは肩越しの攻撃にさらされ、ログに記録される可能性があります)。

于 2012-11-06T12:21:41.940 に答える