要从HTML弹出窗口返回值,可以使用JavaScript的window.open()方法创建一个新的浏览器窗口,并在新窗口中打开指定的URL。在新窗口中,可以执行一些操作,然后通过JavaScript的window.opener.postMessage()方法将结果发送回原始窗口。
以下是一个简单的示例:
function openPopup() {
// 打开弹出窗口
var popup = window.open("popup.html", "popup", "width=500,height=500");
// 监听返回值
window.addEventListener("message", function(event) {
if (event.origin !== "http://localhost:8080") {
return;
}
console.log("收到返回值:" + event.data);
});
}
function returnValue() {
var value = "Hello from popup!";
window.opener.postMessage(value, "http://localhost:8080");
window.close();
}
在这个示例中,我们首先在HTML中创建了一个按钮,用于打开弹出窗口。然后,在JavaScript中编写了openPopup()函数,用于打开弹出窗口并监听返回值。在弹出窗口中,我们执行了一些操作,并通过window.opener.postMessage()方法将结果发送回原始窗口。最后,在原始窗口中,我们监听了返回值并将其打印到控制台中。
需要注意的是,由于浏览器的安全策略,我们需要在打开弹出窗口时指定允许跨域通信的源(即event.origin !== "http://localhost:8080"),否则无法接收到返回值。
领取专属 10元无门槛券
手把手带您无忧上云