最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:01:12
文檔

js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧

js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧:很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼: 代碼如下: window.parent.document.getElementById(main) .contentWindow.document.getElementById('input').value = document.getEl
推薦度:
導(dǎo)讀js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧:很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼: 代碼如下: window.parent.document.getElementById(main) .contentWindow.document.getElementById('input').value = document.getEl

很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼:
代碼如下:
window.parent.document.getElementById("main")
.contentWindow.document.getElementById('input').value =
document.getElementById('myIframe')
.contentWindow.document.getElementById('s0').value;

其實(shí)這個問題可以被大大的簡化,框架應(yīng)用中有一個固定不變的窗口叫window.top,如果我們把數(shù)據(jù)緩存到這個頁面,其下所有框架都可以獲取到,無論子頁面如何變幻。不需要采用Cookie,也不需要采用什么HTML5本地?cái)?shù)據(jù)庫策略,你只需要每個頁面引用一個js文件,內(nèi)容如下:
代碼如下:
var share = {
/**
* 跨框架數(shù)據(jù)共享接口
* @param {String} 存儲的數(shù)據(jù)名
* @param {Any} 將要存儲的任意數(shù)據(jù)(無此項(xiàng)則返回被查詢的數(shù)據(jù))
*/
data: function (name, value) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = cache;
return value ? cache[name] = value : cache[name];
},
/**
* 數(shù)據(jù)共享刪除接口
* @param {String} 刪除的數(shù)據(jù)名
*/
removeData: function (name) {
var cache = window.top['_CACHE'];
if (cache && cache[name]) delete cache[name];
}
};

這個寥寥數(shù)行的方法可以共享任意類型的數(shù)據(jù)供各個框架頁面讀取,它與頁面名稱、層級毫無關(guān)系,就算哪天框架頁面層級被修改,你也完全不用擔(dān)心,它可正常工作。
例如,如我們可以在A頁面存入共享數(shù)據(jù):
代碼如下:
share.data(‘myblog', ‘http://www.gxlcms.com');
share.data(‘editTitle', function (val) {
document.title = val;
});

然后某框架頁面任意取A頁面的數(shù)據(jù)
代碼如下:
alert(‘我的博客地址是: ‘ + share.data(‘myblog');
var editTitle = share.data(‘editTitle');
editTitle(‘我已經(jīng)獲取到了數(shù)據(jù)');

對,就這么簡單!你還可以在artDialog 的iframeTools擴(kuò)展中看到此技術(shù)身影。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧

js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值_javascript技巧:很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼: 代碼如下: window.parent.document.getElementById(main) .contentWindow.document.getElementById('input').value = document.getEl
推薦度:
標(biāo)簽: javascript 簡化 框架
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top