window.opener не определен в ie, но не в chrome, ff - PullRequest
0 голосов
/ 20 сентября 2018

Я открываю новую страницу и в IE (используя ie 11) window.opener не определен.Ссылка окна, которую возвращает window.open, также полна неопределенного или пустого Object.

Моя недавно открытая страница должна получить объект Xrm с главной страницы, так как я не могу получить его иначе инужно сделать все мои функциональные возможности.Код:

function openCountyTab() {
  countyTabRef = window.open("countyTab", "countyTab");
  return false;
  }

И в файле js новой вкладки у меня есть var opener; window.onload = function() { ... opener = window.opener; ...}

Я пробовал много вещей, включая отправку его на полный URL, используяBLOB-объект и создание URL-адреса из этого (который возвращает отказ в доступе), я также должен отметить, что при отправке window.open("fullDomainName") Object, которое я получаю, заполнено тегами <Access Denied>.

Редактировать: Я изложу свою проблему более четко.Мне нужно открыть новую страницу HTML, которая находится в том же домене, и ей нужно либо передать объект Xrm, либо получить его из окна, которое его открыло.Теперь необходим объект Xrm, потому что я использую его в своем скрипте, который запускается на этой недавно открытой странице.В частности, это необходимо для используемой мной библиотеки, которая называется XrmServiceToolKit.

Я использую это для извлечения и изменения данных на сервере на платформе Microsoft CRM.У меня нет проблем с выполнением всего этого, так как все работает нормально на Chrome, FF.Проблема в том, что XrmServiceToolKit не может получить context, то есть объект Xrm, потому что это null или undefined на странице.Поэтому я не могу запустить свой скрипт, так как это зависит от этого.Поэтому мне нужен способ открыть новую страницу (а не заменить текущее окно) в IE11 и дать ему этот Xrm объект.

Надеюсь, это очистит его.

Любая помощь оченьоценили!

1 Ответ

0 голосов
/ 20 сентября 2018

Таблица Совместимость браузеров в MDN для window.opener только перечисляет Chrome, Firefox и Android Webview как поддерживающие эту переменную, все остальные браузеры неизвестны и, очевидно, не совместимы.

Поэтому вы не должны зависеть от этого в приложениях, которые должны быть переносимы на все браузеры.

Если вам нужно установить связь между окном и другим окном, которое оно открывает, взгляните на postMessage механизм.

...