2014-02-18 3 views
0

У меня есть два сайта A и B в одном домене.добавить свойства в window.open для следующей страницы

На самом деле, я нахожусь в месте А и хочет открыть сайт B на JavaScript:

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

Теперь я хочу, чтобы использовать эти атрибуты, чтобы инициализировать сайт А до того «загрузки контента». Есть ли способ получить эти атрибуты после загрузки сайта B:

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

Как это работает? Или есть другой (новый) способ заставить его работать? Я не хочу использовать файлы cookie или другие html5-хранилища для этого!

+1

Будет ли использовать querystring как о ption? – spassvogel

+0

Да. Спасибо! – nimo23

ответ

1

«без гражданства» между веб-страницами (http) осуществляется через get, post, put, delete - G ET выглядит лучше всего здесь, как говорит @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

+0

Спасибо! Это именно то, что мне нужно! – nimo23

+0

Отличный материал @ nimo23. Ответ Вивека тоже стоит посмотреть, обращаясь к значениям через window.opener –

2

Вы можете использовать window.opener для получения переменных со страницы, с которой вы перенаправлены. Попробуйте это:

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

Надеется, что это помогает

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); 
} 

и ваших JS в сайте A:

window.open("B.html?attribute1=somevalue","...",...); 
Смежные вопросы