首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 子窗体向父窗体传值

在JavaScript中,子窗体向父窗体传值通常可以通过以下几种方式实现:

1. 使用window.opener对象

当一个窗口打开另一个窗口时,新打开的窗口可以通过window.opener对象访问到打开它的窗口。

父窗体代码:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>Parent Window</title>
    <script>
        function receiveMessage(event) {
            if (event.origin !== "http://example.com") { // 安全检查
                return;
            }
            alert("Received message from child: " + event.data);
        }

        window.addEventListener("message", receiveMessage, false);
    </script>
</head>
<body>
    <button onclick="openChild()">Open Child Window</button>
    <script>
        function openChild() {
            window.childWindow = window.open("child.html", "Child Window", "width=300,height=200");
        }
    </script>
</body>
</html>

子窗体代码(child.html):

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>Child Window</title>
    <script>
        function sendMessage() {
            window.opener.postMessage("Hello from child!", "http://example.com");
            window.close();
        }
    </script>
</head>
<body>
    <button onclick="sendMessage()">Send Message to Parent</button>
</body>
</html>

2. 使用localStoragesessionStorage

子窗体和父窗体可以共享localStoragesessionStorage中的数据。

父窗体代码:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>Parent Window</title>
    <script>
        function checkStorage() {
            setInterval(() => {
                const message = localStorage.getItem('messageFromChild');
                if (message) {
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 父组件向子组件传值步骤

    父组件向子组件传值步骤: 在这里先定义一下,相对本案例来说:App.vue是父组件,Second-module.vue是子组件。 一、首先,值肯定是定义在父组件中的,供所有子组件共享。...即引用子组件的标签上),把父组件的值绑定给子组件: 这里我绑定了两个值,一个是数组,一个是字符串。...调用子组件并引用、在引用的标签上给子组件传值。...但是注意是要用 v-bind: 绑定要传的值,不用v-bind直接把值放到标签上,会被当成html的节点属性解析的。...、对象(Object) 其中,普通类型是可以在子组件中更改,不会影响其他兄弟子组件内同样调用的来自父组件的值, 但是,引用类型的值,当在子组件中修改后,父组件的也会修改,那么后果就是,其他同样引用了改值的子组件内部的值也会跟着被修改

    1.7K20

    实现iframe父窗体与子窗体的通信

    (2)当子窗体触发了一个事件后,要给父窗体传一个跳转地址的url。父窗体监听到这个事件后,根据接收到的url,来更新当前父窗体的url,实现页面的跳转。..., 'iframe2'); (5) 发消息时,要指定messenger的名字和消息,例如父窗体要给子窗体发消息:  // 父窗口中 - 向单个iframe发消息  messenger.targets['...这里分别是父窗体和子窗体的代码实现,可直接在浏览器中打开查看效果,其中messenger.js可以在这里下载,放到项目目录下。 父窗体: 向父窗口传递消息。发消息时,要指定接收消息的父窗体的messenger的名字,以及传递的消息。...同时提供了一个完整的实例,可以实现子窗体向父窗体传递消息,父窗体通过监听消息事件,来获取子窗体消息的目的。如有问题,欢迎指正。

    9.8K771

    Vue子组件向父组件传值

    父子组件通信父子组件通信是指一个组件向它的直接父组件传递数据或事件,或者从它的直接父组件接收数据或事件。在 Vue.js 中,父子组件通信可以通过 props 和自定义事件两种方式实现。...propsprops 是父组件向子组件传递数据的一种方式,类似于 React 中的 props。...父组件中通过在子组件标签上使用属性的方式传递数据,并且数据类型需要和子组件中声明的类型一致。自定义事件自定义事件是子组件向父组件传递数据或事件的一种方式。...父组件中使用 v-on 指令监听了该事件,并在事件处理函数中接收了子组件传递的数据,并将其赋值给 eventData 变量。最后,在父组件的模板中使用插值语法显示接收到的数据。2....兄弟组件 2 中通过 mounted 钩子函数监听了父组件中触发的 change-name 事件,并在事件处理函数中修改了 data 对象中的姓名值。

    23710

    vue中父组件向子组件传值

    总体来说,父传子就是这四个步骤:父组件的data中定义值,引入并调用子组件,在引用的子组件的标签上通过v-bind指令给子组件传值,子组件通过在data中定义的props属性接收父组件传过来的值然后应用到子组件里...首先,值肯定是定义在父组件中的,供所有子组件共享,所以要在父组件的data中定义值: 然后,父组件要和子组件有契合点,就是要在父组件中引入、注册、调用子组件: 引入: 注册...: 调用:(父组件内在引用的子组件的标签上通过v-bind指令绑定上要传的值) 最后,子组件内部要去接收父组件传过来的值:使用props来接收 这样,子组件内部就可以直接使用父组件的值了...但是有要注意的点: 子组件接受的父组件的值分为——引用类型和普通类型两种, 普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)...引用类型:数组(Array)、对象(Object) 其中,普通类型是可以在子组件中更改,不会影响其他兄弟子组件内同样调用的来自父组件的值, 但是,引用类型的值,当在子组件中修改后,父组件的也会修改

    1.4K40

    Android 子activity关闭 向父activity传值

    可变通的,你可以启动一个Activity作为子Activity,它与父Activity有内在的联系。当子Activity关闭时,它会触发父Activity中的一个事件处理函数。...这个值将在后面用来作为有返回值Activity的唯一ID。...接下来的代码片段节选自子Activity的onCreate方法,显示了怎样向调用的Activity返回不同的结果: Button okButton = (Button) findViewById(R.id.ok_button...的结果 当子Activity关闭时,它的父Activity的onActivityResult事件处理函数被触发。...依赖于子Activity的目的,它可能会包含一个代表特殊的从列表中选择的数据的URI。可变通的,或额外的,子Activity可以使用“extras”机制以基础值的方式返回临时信息。

    1.7K50
    领券