получить URL-адрес из другого поколения Windows с помощью js

  • Автор темы I AM
  • Обновлено
  • 13, May 2024
  • #1
У меня такая проблема: я не могу получить URL-адрес открываемого окна.

Если я использую

окно.местоположение

Я получаю результат, но когда я выполняю

окно.location.origin

или другие, мне ничего не возвращается, что делать?

Я вижу ошибку в catch и это сообщение:

domException: отказано в доступе к свойству «документ» объекта перекрестного происхождения

Я работаю локально с xampp, возможно, в этом проблема.

Можете ли вы мне помочь, пожалуйста?

var win = window.open(popupurl, "authwindow", 'width=800, height=600'); var pollTimer = window.setInterval(function () { пытаться { if (win.document.URL.indexOf(CLIENT_REDIRECT) != -1) { window.clearInterval(pollTimer); deffer.resolve(КОД); победа.закрыть(); } } поймать (е) { } }, 500);

I AM


Рег
23 Jul, 2011

Тем
403760

Постов
400028

Баллов
2418908
  • 05, Jun 2024
  • #2
Доступ из разных источников — это то, что должно быть заблокировано между окнами/вкладками браузера.

Это одна из многих причин, по которым window.open является скорее пережитком прошлого, чем современной техникой разработки, и, если возможно, я бы вообще не использовал его так же, как вы бы/должны были бы использовать iframe.

(которые в наши дни в основном ограничиваются рекламой и такими вещами, как codepen)

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

Вот почему в наши дни, когда это возможно, мы используем модальные диалоги с AJAX для выполнения задач такого рода.

Предполагая, что вы контролируете все, что загружает ваш «popupurl», я бы рекомендовал именно такой подход.

Сделайте себе одолжение и забудьте о существовании window.open.
 

Pupppi


Рег
01 Jan, 2011

Тем
89

Постов
211

Баллов
676
  • 12, Jun 2024
  • #3
Большое спасибо за ответ, я испробовал все способы, но не могу получить то, что хочу.

если я использую этот сценарий, он работает наполовину.

Можете ли вы помочь мне преобразовать его с помощью Ajax? что мне нужно сделать, так это получить разрешение пользователя на использование данных в Google Fit.

более того, я должен разрешить отзыв авторизации, а также обновить токен, если срок его действия истек.

с помощью этого скрипта я могу авторизовать пользователя и получить код, который Google генерирует с помощью auth2, но поскольку я открываю его в другом окне, я не могу получить ответ в виде URL-адреса.

еще раз спасибо
 

Zalman1


Рег
22 Feb, 2016

Тем
60

Постов
205

Баллов
515
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно