window.open()参数传递及获取
原文链接:https://wenku.csdn.net/answer/cd7f78922c64bad2c7854b55a947fcc0
window.open()是JavaScript中打开新窗口的方法。它可以接受三个参数,分别是要打开的URL、窗口名称和窗口特性。其中,窗口特性可以是一个字符串,包含多个用逗号隔开的键值对,用于设置新窗口的属性,如大小、位置、是否有菜单栏等。
如果要在新窗口中传递参数,可以将参数拼接在URL后面,例如:window.open('http://example.com?id=123')。在新窗口中,可以通过location.search获取URL中的参数,例如:var id = location.search.substring(1);
另外,如果要在新窗口中访问父窗口的变量或函数,可以使用window.opener对象,例如:var parentVar = window.opener.parentVar; window.opener.parentFunc();
相关问题window.open传参vue获取参数
可以通过URL参数的方式将参数传递给新打开的窗口,然后在新窗口中通过window.location.search获取URL参数,再用vue的路由或者状态管理器来传递参数。
例如,以下代码将参数id和name传递给新窗口:
let id = 1;
let name = 'John';
window.open(`/newPage?id=${id}&name=${name}`);
在新窗口中可以通过以下方式获取参数:
let params = new URLSearchParams(window.location.search);
let id = params.get('id');
let name = params.get('name');
然后可以将参数存储在vue的状态管理器中:
this.$store.commit('setId', id);
this.$store.commit('setName', name);
或者通过路由传递参数:
this.$router.push({ path: '/newPage', query: { id: id, name: name } });
然后在新页面中可以通过$route.query来获取参数:
let id = this.$route.query.id;
let name = this.$route.query.name;
php window.open()获取返回值
在使用 window.open()
函数创建一个新的窗口时,无法直接获取该窗口的返回值。这是因为该函数是异步的,新打开的窗口需要时间来加载和处理内容,而 JavaScript 代码会继续执行,无法等待窗口加载完成后再获取返回值。
但是,可以通过在新窗口中执行 JavaScript 代码来将返回值传递回原始窗口。具体方法如下:
在打开新窗口时,给该窗口添加一个唯一的标识符,例如一个随机数或者时间戳。
在新窗口中定义一个 JavaScript 函数,该函数将需要返回的值作为参数,然后调用原始窗口中的一个 JavaScript 函数,并将返回值作为参数传递给它。
function sendValueToParent(value) { window.opener.receiveValueFromChild(value); }
在原始窗口中定义一个 JavaScript 函数,该函数将接收从新窗口传递过来的值。
function receiveValueFromChild(value) { console.log(value); }
在打开新窗口的代码中,为
window.open()
函数设置一个定时器,定期检查新窗口是否已经加载完毕。如果新窗口已经加载完毕,则调用在新窗口中定义的 JavaScript 函数,将返回值传递回原始窗口。var childWindow = window.open('child.html?id=123456', '_blank'); var intervalId = setInterval(function() { if (childWindow.closed) { clearInterval(intervalId); } else if (childWindow.document.readyState === 'complete') { childWindow.sendValueToParent('Hello, World!'); clearInterval(intervalId); } }, 1000);
需要注意的是,该方法只适用于在同一个域名下打开的新窗口。如果打开的是外部网站或者跨域的页面,则无法通过 JavaScript 直接访问该页面的内容,也无法获取该页面的返回值。
标签:窗口,name,参数传递,window,新窗口,open,id From: https://www.cnblogs.com/sunny3158/p/17592723.html