使用postMessage傳值遇到的問題

2021-09-17 23:06:57 字數 610 閱讀 3338

在開發中我們會遇到倆個視窗傳值,我一般會使用倆種傳值方式,一、使用位址列傳值,然後另乙個視窗取位址列內容解析。二、使用sessionstorage進行傳值。但最近看面試題發現還可以使用postmessage傳值,但是遇到乙個坑,具體原因本人也是沒有找出,只是做了簡單分析,希望看到這篇文章的大佬幫忙解決。

第乙個頁面的**如下

title

dianji

window.sessionstorage

document.getelementbyid('btn').onclick =function () , 0);

第二個頁面的**如下:

title

window.addeventlistener('message', function(e) {

alert(e.data)

// console.log(e.source === window.opener);  // true

現在我與到的問題是,如果第乙個頁面去掉settimeout 第二個頁面就會觸發不了message事件。據我猜測可能是如果去掉第乙個頁面的settimeout 可能頁面會直接傳送訊息,但此時第二個頁面還在載入中,但訊息已經傳送過,所以觸發不了。還希望看見此篇文章的大佬解決

使用雜湊傳值

public tchospinfodata getonhospbasic decimal id orgid,string is frcode,string is fjcmyear,string is fcountymark,string outyn,string allyn,string is fi...

傳值 傳值引用

首先對傳值和傳引用要有個基本的概念 傳值 傳遞的是值的副本。方法中對副本的修改,不會影響到呼叫方。傳引用 傳遞的是引用的副本,共用乙個記憶體,會影響到呼叫方。此時,形參和實參指向同乙個記憶體位址。對引用副本本身 物件位址 的修改,如設定為null,重新指向其他物件,不會影響到呼叫方。直接上 更好的理...

通知傳值的使用

輸入所要傳送的資訊 同時將label的值通過button方法呼叫傳遞,ibaction buttonclick id sender 在傳送通知後,在所要接收的控制器中註冊通知監聽者,將通知傳送的資訊接收 void viewdidload void tongzhi nsnotification tex...