Я хотел отфильтровать строки dfbc, у которых был BUSINESS_ID, который также был в BUSINESS_ID dfProfilesBusIds
. Наконец, он работал:
dfbc = dfbc[(dfbc['BUSINESS_ID'].isin(dfProfilesBusIds['BUSINESS_ID']) == False)]
Если окна от того же домена защиты, и у Вас есть ссылка на другое окно, да.
открытый JavaScript () метод возвращает ссылку на созданное окно (или существующее окно, если это снова использует существующий). Каждое окно, созданное таким способом, относилось к свойству это "window.opener", указывающий на окно, которое создало его.
Любой может тогда использовать DOM (безопасность, зависящая) к свойствам доступа другого или его документам, кадры и т.д.
Помещая код в вопрос, можно сделать это из родительского окна:
var thisIsAnObject = {foo:'bar'};
var w = window.open("http://example.com");
w.myVariable = thisIsAnObject;
или это из нового окна:
var myVariable = window.opener.thisIsAnObject;
я предпочитаю последнего, потому что необходимо будет, вероятно, ожидать новой страницы для загрузки так или иначе, так, чтобы можно было получить доступ к ее элементам, или независимо от того, что Вы хотите.
В Вашем родительском окне:
var yourValue = 'something';
window.open('/childwindow.html?yourKey=' + yourValue);
Тогда в childwindow.html:
var query = location.search.substring(1);
var parameters = {};
var keyValues = query.split(/&/);
for (var keyValue in keyValues) {
var keyValuePairs = keyValue.split(/=/);
var key = keyValuePairs[0];
var value = keyValuePairs[1];
parameters[key] = value;
}
alert(parameters['yourKey']);
существует потенциально большая проверка ошибок, которую необходимо делать в парсинге пар ключ/значение, но я не включаю его здесь. Возможно, кто-то может обеспечить более содержащую стандартную программу парсинга строки запроса JavaScript в более позднем ответе.
Да, сценарии могут получить доступ к свойствам других окон в том же домене, что у них есть дескриптор на (обычно полученный через window.open/opener и window.frames/parent). Это обычно более управляемо для вызова функций, определяемых на другом окне, а не скрипке с переменными непосредственно.
Однако окна могут умереть или идти дальше, и соглашение о браузерах с ним по-другому, когда они делают. Проверьте, что окно (a) все еще открыто (! window.closed), и (b) имеет функцию, которую Вы ожидаете доступный, прежде чем Вы попытаетесь назвать его.
Простые значения как строки прекрасны, но обычно это не хорошая идея передать сложные объекты, такие как функции, элементы DOM и закрытия между окнами. Если дочернее окно хранит объект от своего новичка, то новичок закрывается, тот объект может стать 'мертвым' (в некоторых браузерах, таких как IE) или вызвать утечку памяти. Могут последовать странные ошибки.
С другой стороны, можно добавить его к URL и позволить языку сценариев (PHP, Perl, ASP, Python, Ruby, безотносительно) обрабатывают его с другой стороны. Что-то как:
var x = 10;
window.open('mypage.php?x='+x);
window.open () функция также позволит это, если у Вас будет ссылка на созданное окно, если это находится на том же домене. Если переменная является используемой стороной сервера, необходимо использовать $ _SESSION переменная (предположение, что Вы используете PHP).
Да, это может быть сделано, пока оба окна находятся на том же домене. window.open () функция возвратит дескриптор новому окну. Дочернее окно может получить доступ к родительскому окну с помощью элемента DOM "новичок".
Для меня следующее не работает
var A = {foo:'bar'};
var w = window.open("http://example.com");
w.B = A;
// in new window
var B = window.opener.B;
, Но это работает (отметьте имя переменной)
var B = {foo:'bar'};
var w = window.open("http://example.com");
w.B = B;
// in new window
var B = window.opener.B;
Также var B должен быть глобальным.