Переадресация триггера на другую страницу, если указанная страница c загружена в iframe - PullRequest
1 голос
/ 31 января 2020

Я использую Limesurvey для создания опроса клиентов. Поскольку я хочу разместить опрос на домашней странице моей компании, я использую iframe, чтобы это произошло. Это гарантирует, что у меня есть официальный верхний и нижний колонтитулы, и мне не нужно перестраивать эти элементы в Limesurvey.

Limesurvey предлагает возможность перенаправить на другую страницу после того, как кто-то завершил опрос (например, спасибо страница). Поскольку я встраиваю Limesurvey, я не могу перенаправить на официальный сайт благодарности с домашней страницы моей компании, так как у меня был бы двойной заголовок и двойной нижний колонтитул.

Я подумал о том, чтобы перенаправить на фиктивный сайт. С родительского сайта я хочу проверить это событие и вызвать перенаправление на мой благодарственный сайт.

Я не знаю, как это сделать в Javascript. Как определить прослушиватель событий, чтобы проверить, был ли загружен определенный сайт c в iframe, а затем запустить перенаправление в родительском.

Большое спасибо!

1 Ответ

0 голосов
/ 31 января 2020

Вы можете проверить URL в IFrame, используя <element>.documentWindow.location.href, если он находится в том же домене:

например, если у вашего iframe был идентификатор 'frame'

document.getElementById('frame').documentWindow.location.href

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

Если вы не находитесь на той же странице, это вызовет исключение:

Error: Permission denied to get property Location.href

См. этот SO-ответ для более подробной информации также, как указано здесь, свойство называется иначе в chrome: documentWindow называется contentDocument в Chrome

...