系列教程之mui頁面間傳值的幾種方式

2021-10-25 06:03:22 字數 1578 閱讀 2213

一、頁面預載入時傳值

mui.init(,

extras:,//在這裡新增要傳遞的引數

...},

...]

});或如下

var page = mui.preload(,

extras:

});

通過上述方法預載入頁面,然後在載入的那個頁面中接受引數。

mui.plusready(function());
二、通過mui.openwindow開啟視窗向頁面傳遞引數

這種傳值方法通常我們的做法如下:

在引數生成頁面中

mui.openwindow(,

extras: ,

waiting:

});

在引數接收頁面中

mui.plusready(function());
通常我們傳參就這麼進行,但是由於這個頁面,多次被開啟,發生了類似快取的現象,所以,有時候這個plusready不能保證每次都能執行。所以,我增加了乙個自定義事件,來改變這個情況,實現方法如下(我是雙管齊下,plusready也獲取值,自定義事件也獲取值)。

那好,下面我演示一下我的方法(下面這個監聽乙個按鈕,然後開啟乙個頁面);

var apage = null;

mui.plusready(function() , //視窗引數

extras: //自定義擴充套件引數

});document.getelementbyid("bbtn").addeventlistener('tap',function(

mui.fire(apage, 'hahaha',);

apage.show();

});});

接下來,就到了引數接收頁面,如下(首先,我們還是要在plusready裡面接收一次,因為你不能保證這次是初次開啟還是第二次開啟頁面,所以,這個還是需要的。)

mui.plusready(function());
但是如果這個是非首次開啟的話,就不一定進來plusready了,所以,引數可能接收失敗了,這裡面,我們就要接收自定義事件傳過來的引數了,就是前面我們的fire那裡了。

//新增上乙個頁面自定義事件監聽

window.addeventlistener('hahaha', function(event) );

這樣,我們就能把這個引數獲取到,雙重保證,就沒有問題了。(如果你們需要謹慎一些,可以把這個自定義事件的監聽延遲個300毫秒,保證接收的概率,因為如果是這個自定義事件優先執行了,然後他又去執行這個plusready,那就會衝突了。)

三、通過本地儲存傳值

傳送引數的頁面:plus.storage.setitem("targetid","123");

接收引數的頁面:plus.storage.getitem("targetid");

參考:

MUI開發指南(四) MUI 頁面間傳值

extras 新視窗的額外擴充套件引數,可用來處理頁面間傳值 例如 var webview mui.openwindow console.log webview.name 輸出mui字串注意 擴充套件引數僅在開啟新視窗時有效,若目標視窗為預載入頁面,則通過mui.openwindow方法開啟時傳遞的...

php頁面之間傳值 PHP頁面間傳值的幾種方法

方法一 require once page a a hello page b require once a.php echo a.world 訪問b.php會得到 hello world!方法二 通過頁面跳轉時攜帶引數傳值 page a a world 點我跳到b.php page b echo h...

頁面間傳值的幾個方法

一 目前在asp.net中頁面傳值共有這麼幾種方式 1 表單提交,form1.submit 此種方在asp。net中無效,因為asp。net的表單總是提交到自身頁面,如果要提交到別一頁面,需要特殊處理。2 鏈結位址傳送 二 如果在兩個頁面間需要大量的引數要傳傳遞,如資料查詢等頁面時,用1 6的方法傳...