Обнаружение URL с JavaScript

Я использую следующий сценарий для принуждения определенной страницы - при загрузке впервые - в (сторонний) iFrame.


(Для разъяснения: Это 'встраивание' сделано автоматически сторонней системой, но только если страница обновлена однажды - для моделирования и некоторых других причин, я хочу это там с начала.)

Прямо сейчас я задаюсь вопросом, мог ли этот сценарий быть улучшен способами, которыми он может обнаружить текущий URL своего 'родительского' документа для инициирования определенного действия? Скажем, URL стороннего сайта является 'http://cgi.site.com/hp/...' и URL iFrame 'http://co.siteeps.com/hp/...'. Это возможный понять sth. как это с JS:


Добродушная шутка TIA

5
задан Bill the Lizard 16 July 2010 в 17:00
поделиться

2 ответа

<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), поскольку это будет пустой блок.

7
ответ дан 14 December 2019 в 01:05
поделиться

Вы можете использовать window.location.href , чтобы получить URL для сравнения строк. Если вы находитесь в iframe и вам нужно знать родительский URL parent.location.href , это должно вам помочь.

2
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: