• js监听事件,实现跨页面动态传值


    a页面通过框架嵌套了b页面,在a页面中有一个下拉列表,选择这个下拉列表,会及时将值传给b页面,并在b页面中通过接收到的值做任何操作,比如查询数据库等。这就用到了js的监听事件,代码如下:

    主页代码:

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        主页
        <iframe src="a.html" frameborder="0"></iframe>
    </body>
    </html>
     

    a页面代码:

    <html lang="en">
    <head>
        <title>Document</title>
    </head>
    <script type="text/javascript">
        window.onload = function() {
             document.getElementById("parentSelect").onclick = function() {
                 var val =  this.options[this.selectedIndex].value;
                document.getElementById("childIframe").contentWindow.postMessage({
                    value: val
                },"*");
             };
        }
    </script>
    <body>
        a页面
        <select name="parentIframe" id="parentSelect">
            <option value="1">aaa</option>
            <option value="2">bbb</option>
        </select>
        <iframe src="b.html" frameborder="0" id="childIframe"></iframe>
    </body>
    </html>
     
    b页面代码:
    <html lang="en">
    <head>
        <title>Document</title>
    </head>
    <script type="text/javascript">
        window.onload = function() {
            //子页面监听:        
            window.addEventListener("message", function(event) {
                var data = event.data;
                //以下内容为处理业务和调用当前页面的函数方法
                if(data.value && data.value ==1){
                    document.getElementsByClassName("showOption")[0].innerHTML = `
                    <select name="" id="">
                        <option value="">请选择</option>
                        <option value="1">aaaa</option>
                        <option value="2">bbbbbbb</option>
                    </select>`
                } else {
                    document.getElementsByClassName("showOption")[0].innerHTML = `
                    <select name="" id="">
                        <option value="">请选择</option>
                        <option value="3">111111111</option>
                        <option value="4">22222222</option>
                    </select>`
                }
            });
        }
    </script>
    <body>
        b页面
        <div class="showOption">        
        </div>
    </body>
    </html>
  • 相关阅读:
    List.add方法传入的是地址(引用)而不是值
    List (或ArrayList) 转换为int[]数组 终于搞懂了
    01背包 完全背包 状态转移方程及空间复杂度优化
    十大排序算法整理(五):归并排序实现
    OpenStack Object Storage(Swift)概述
    OpenStack 组成 架构
    云计算 概述
    OpenStack概述
    C语言位运算、移位运算 经典示例
    Python数据库访问之SQLite3、Mysql
  • 原文地址:https://www.cnblogs.com/albert-/p/14654733.html
Copyright © 2020-2023  润新知