在window.open中为下一页添加属性

时间:2014-02-18 13:24:48

标签: javascript

我在一个域中有两个站点A和B.

实际上,我在网站A,并希望每个javascript打开网站B:

window.open("B.html","...","Attributes");

现在,我想在“contentloaded”之前使用这些属性来初始化网站A.有没有办法在加载站点B后获取这些属性:

document.addEventListener('DOMContentLoaded', function() {
// get these "Attributes" from transmitted window.open(..)
....
}

它是如何工作的?或者还有其他(新的)方法可以使它工作吗?我不想为此使用cookies或其他html5存储!

3 个答案:

答案 0 :(得分:2)

您可以使用window.opener从您重定向的页面中获取变量。试试这个:

document.addEventListener('DOMContentLoaded', function() {
    window.opener.yourAttributesFromSiteA;
}

希望这有帮助

答案 1 :(得分:1)

您可以使用url参数将数据从一个页面发送到另一个页面并使用javascript捕获它:

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");

    var params = {}, tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
    }

    return params;
}

document.addEventListener('DOMContentLoaded', function() {
    var qs = getQueryParams(document.location.search);
    alert(qs.attribute1);
}

和你在站点A的js:

window.open("B.html?attribute1=somevalue","...",...);

答案 2 :(得分:1)

网页(http)之间的“无状态”通过get,post,put,delete完成 - GET看起来最好,就像@spassvogel在评论中所说的那样。

page2.html?param=paramvalue

要传递值的window.open方法,可以与

相同
<a href="page2.html?param=paramvalue" target="_blank"> ..

“新窗口”脚本可以通过

访问这些值
window.location.search

RE:
http://www.w3schools.com/jsref/prop_loc_search.asp