Задать вопрос
@Fithanso

Как подключить js файл в html через проверку на js?

Всем привет.
Я подключаю страницу через iframe, назовем её "страница2", и нужно сделать так, чтобы js файл подгружался в верстке этой же страницы, если я "страницу2" подключаю через iframe на страницу1, но не подгружался, если я страницу2 открываю в браузере. Суть в том, что методы проверки действительного адреса загрузки в php я не знаю, а в js это можно сделать с помощью window.top.location.href.
И как же мне сделать проверку и подключение через js? Если кто знает, как это можно сделать с php, то тоже сгодится.
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Можно пойти другим путем. Передавать php скрипту, выдающему страницу2 параметр, который будет явно указывать, добавлять в отдаваемый html загрузку скрипта или нет. например так:
http://you.domain/страницa2.php?script=yes - загрузка скрипта будет добавлена в отдаваемый html
http://you.domain/страницa2.php или http://you.domain/страницa2.php?script=no - загрузка скрипта НЕ будет добавлена в отдаваемый html

Ну и соответственно, везде где идет загрузка в iframe давать адрес http://you.domain/страницa2.php
Там же где будет необходимо грузить скрипт - ставить адрес http://you.domain/страницa2.php?script=yes
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
В PHP достоверно проверить действительный адрес нельзя. Но достаточно надёжно можно проверять $_SERVER['HTTP_REFERER']. Если он ссылается на страницу1, то всё ок, а если нет, то скорее всего страница2 открывается в браузере напрямую.

В JS нет смысла делать что-либо в "проверку на js" (я так понимаю, вы про noscript), потому что в этом случае js не работает вообще. Поэтому делайте в инлайн js скрипте так:
1) Если JS работает И если это фрейм, то подгрузить js файл.
Если inline скрипт не сработал, то в noscript можно просто попросить включить JS, и по умолчанию js файл грузиться не будет (в этом просто нет смысла, как я уже сказал).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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