原创的跨页面传输数据

使用方式:
打开目标页面的js
var monitorWindow=window.open("../目标页面.html");
monitorWindow.οnlοad=function(){
    var crossPageData=data;
    monitorWindow.initCrossPageStorage(crossPageData);
}

目标页面的设置

<script type="text/javascript" src="/crossPageStorage.js"></script>

//封装简化跨页面数据,CrossPageStorage、crossPageData
$.extend({
    crossPageStorage:document.crossPageStorage,
    crossPageData:document.crossPageStorage.crossPageData
});

目标页面的js调用传来的数据

如果用jquery扩展了,就可以

var crossPageData = $.crossPageData;

否则

var crossPageData = document.crossPageStorage.crossPageData

 

crossPageStorage.js的内容:

(function(window){
    //给window.Element扩展一个函数,专门存储跨页面的数据
    window.Element.prototype.CrossPageStorage = function(value){
        var _this = this;
        var _dataName = 'crossPageData';
        var tagName=_this.tagName;
        if(tagName!=="CS-CPSTORAGE"){
            //如果标签元素不是"cs-cpStorage",则不处理
            console.error("非CrossPageStorage的标签!")
            return this;
        }

        if(typeof(value) !== 'undefined'){
            _this[_dataName] = value;
            return this;
        }
        else{
            _this[_dataName]={};
            return this;
        }
    };
    //给window.Element扩展一个函数,可以更直接的获取跨页面数据
    window.Element.prototype.CrossPageData = this['crossPageData'];

    //在界面中插入cs-cpStorage自定义元素Element。并设置到document
    if(document.getElementsByTagName("cs-cpStorage").length===0){
        var cpStorage = document.createElement('cs-cpStorage');
        document.head.appendChild(cpStorage);
        document.crossPageStorage=cpStorage;
    }

    //初始化数据为空对象
    document.crossPageStorage.CrossPageStorage();
})(window)

/*
* 被跨页面的父窗口调用
* */
function initCrossPageStorage(data) {
    //console.info(data);
    document.crossPageStorage.CrossPageStorage(data);
    //console.info(document.crossPageStorage.crossPageData.xxxdata);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值