Я использую следующий сценарий для принуждения определенной страницы - при загрузке впервые - в (сторонний) iFrame.
(Для разъяснения: Это 'встраивание' сделано автоматически сторонней системой, но только если страница обновлена однажды - для моделирования и некоторых других причин, я хочу это там с начала.)
Прямо сейчас я задаюсь вопросом, мог ли этот сценарий быть улучшен способами, которыми он может обнаружить текущий URL своего 'родительского' документа для инициирования определенного действия? Скажем, URL стороннего сайта является 'http://cgi.site.com/hp/...' и URL iFrame 'http://co.siteeps.com/hp/...'. Это возможный понять sth. как это с JS:
Добродушная шутка TIA
<script type="text/javascript">
if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
location.reload()
}
if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
location.do-not.reload() resp. location.do-nothing()
}
</script>
Конечно, второй if является избыточным, поэтому вы можете просто сделать это:
<script type="text/javascript">
if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
location.reload()
}
</script>
То, что вы здесь делаете, тестирует window.location
с регулярным выражением, чтобы посмотрите, соответствует ли он желаемому URL-адресу.
Если вы хотите сослаться на родительский URL, вы можете использовать parent.location.href
.
Согласно вашему комментарию, если вы хотите сделать что-то else , вы можете сделать что-то вроде этого:
<script type="text/javascript">
if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
location.reload()
}
else if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
//do something else
}
</script>
Если вы не делаете ничего в другом случае, это фактически NOP (без операции), поэтому вам даже не нужно там else (или другое if), поскольку это будет пустой блок.
Вы можете использовать window.location.href
, чтобы получить URL для сравнения строк. Если вы находитесь в iframe и вам нужно знать родительский URL parent.location.href
, это должно вам помочь.