繁体   English   中英

打开一个新页面并在该新页面中运行 javascript function

[英]To open a new page and run a javascript function in that new page

嗨,我正在尝试使用第 1 页的按钮单击打开一个新页面,在第 2 页中我想使用警报弹出消息。 但是警报是在我的第 1 页本身中执行的。 如果我做错了什么,请告诉我。

function sendemail(){
alert('success');
var popup = window.open();
window.onload = test();
function test(){
alert('new');
}
}
sndWelcomEmail.addEventListener('click',sendemail);

您可以尝试一件事,当您在其中创建一个新的 window append 脚本标签时。 创建一个 test.js 文件并将其添加进去。

var newWindow = window.open('');
newWindow.document.createElement('script');
script.src = 'js/sample.js';
newWindow.document.head.appendChild(script);

或者,

var newWindow = window.open('') // open a blank tab;
newWindow.document.write('<script>alert("Hello World!")</script>');

为此使用 websockets 之类的东西,在页面之间同步用户和发送数据,禁止从一个页面直接在另一个页面上执行脚本,它是纯 xss。

我现在无法测试,但尝试使用

popup.onload = test()

而不是

window.onload = test()

第 2 页

首先,在body标签中添加一个onload function

<body onload="myFunction()">

二、添加这个JS脚本

<script>
function myFunction() {
  alert("Page is loaded");
}
</script>

只需提醒新的 window 而不是旧的:

function sendemail() {
    var popup = window.open();
    window.onload = test();
    function test() {
        popup.alert('new');
    }
}

sndWelcomEmail.addEventListener('click', sendemail);

主要问题是第 2 页如何知道用户来自第 1 页并想要一个弹出窗口。 有很多方法可以解决这个问题。

  1. 添加一个 hash 值,可以使用地址栏传递到第 2 页。 (第 2 页查看地址栏中的 hash 值,然后执行所需的操作。EG.http:kdsjhf.com/#openAlert
  2. 使用更精细的方法使用弹出状态和历史 object 在导航页面之间传递数据。 3.PWA。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM