client 跨視窗傳遞JSON資料

Designed by Freepik
開發視窗程式時,常會使用跳出子視窗讓使用者選取需要的資料後,
再將資料傳回父視窗。
原來網頁程式也可以有這樣的作法。
直接使用jQuery找到父視窗的物件將資料指定回去也可以,
下面的範例使用的是傳遞JSON字串回父視窗再解析資料。
圖片來源Designed by Freepik 

  1. A網頁(父視窗)

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<script type="text/javascript">
    function show()
    {
        var encoded = $('#jsonstring').val();
        var obj = $.parseJSON(encoded);
     
        $('#email').val(obj.email);
        $('#password').val(obj.password);
    }
</script>

</head>
<body>
    <form name="form">
        <input type="text" id="email" name="email"/>
        <input type="text" id="password" name="password"/>    
        <input type="hidden" id="jsonstring" name="jsonstring" /><br />
        <a href="b.html" target="_blank">b.html</a>
    </form>
</body>
</html>

  1. B網頁(子視窗)

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
    function dosubmit(){
        var email = $('#email').val();
        var password = $('#password').val();
        var thing = {email: email, password: password};
        var encoded = JSON.stringify(thing);
  console.log(encoded);
        window.opener.document.all.jsonstring.value = encoded;
        window.opener.show();
        this.close();
    }
</script>
</head>
<body>
        <input type="text" id="email" name="email" />
        <input type="text" id="password" name="password" />
        <input type="button" onclick="dosubmit()" value="確認">

</body>
</html>

沒有留言:

張貼留言

技術提供:Blogger.