@Fithanso

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

Всем привет.
Я подключаю страницу через iframe, назовем её "страница2", и нужно сделать так, чтобы js файл подгружался в верстке этой же страницы, если я "страницу2" подключаю через iframe на страницу1, но не подгружался, если я страницу2 открываю в браузере. Суть в том, что методы проверки действительного адреса загрузки в php я не знаю, а в js это можно сделать с помощью window.top.location.href.
И как же мне сделать проверку и подключение через js? Если кто знает, как это можно сделать с php, то тоже сгодится.
  • Вопрос задан
  • 65 просмотров
Решения вопроса 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
uBlock, Ghostery, WOT, TosterComfort, RKN Alert
В PHP достоверно проверить действительный адрес нельзя. Но достаточно надёжно можно проверять $_SERVER['HTTP_REFERER']. Если он ссылается на страницу1, то всё ок, а если нет, то скорее всего страница2 открывается в браузере напрямую.

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

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

Войти через центр авторизации
Похожие вопросы
Sveak Барнаул
от 50 000 руб.
от 60 000 до 90 000 руб.
UMA.TECH Москва
от 150 000 до 215 000 руб.
18 июл. 2019, в 10:42
150000 руб./за проект
18 июл. 2019, в 09:39
5000 руб./за проект
18 июл. 2019, в 09:29
700 руб./в час