У нас есть существующее приложение A (A/pathnameA/?param1=true¶m2=false
), которое перенаправляет на приложение B, используя window.location.href = A/pathnameB/?param1=true¶m2=false
. Все это происходит внутри iframe. Поэтому мы не видим изменения параметров в верхнем окне URL. Только компонент pathname
изменится в URL верхнего окна в приложении B на pathnameB
(A/pathnameB/?param1=true¶m2=false
; компонент источника URL остается прежним). Внутри приложения B мы используем эти параметры iframe param1
, param2
для обработки.
Теперь у нас есть требование, когда мы хотим обновить URL верхнего окна только одним из параметров (скажем, удалить param1
; A/pathnameA/?param2=false
), но мы хотим сохранить оба параметра в iframe для обработки (т. Е. A/pathnameA/?param1=true¶m2=false
).
Для этого мы сохранили код iframe
window.location.href = A/pathnameB/?param1=true¶m2=false // no change
и добавлен новый код для обновления только URL верхнего окна
window.top.location.href = A/pathnameB/?param2=false // for top window url
(или window.parent.location.href = A/pathnameB/?param2=false
)
Несмотря на то, что параметры в URL верхнего окна обновляются, как и ожидалось, теперьпараметры в iframe также обновляются до A/pathnameB/?param2=false
. Нам нужно, чтобы в URL-адресе iframe имелись param1
, param2
и URL-адрес верхнего окна, чтобы отображались только param2
.
- Не рекомендуется ли обновлять URL-адрес iframe и URL-адрес верхнего окна по одномудругой?
- Имеет ли
window.top.location.href
также переопределение значения URL iframe (window.location.href
)? - Какое решение следует использовать для этого сценария?