簡體   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