Глючит js - смешанное содержимое

Аватар пользователя maiskiykot maiskiykot 4 апреля в 17:50

Взял тут на форуме простейший скрипт - хотел прикрутить себе. Однако при попытке подключения всеми возможными способами выдается ошибка - смешанное содержимое и скрипт не работает. Никаких ошибок никуда не кидает. Скрипт состоит по сути из одной функции. Правильность кода проверил многократно. Что это может быть? Ошибка перехватывается в IE 11, остальные браузеры молча игнорируют скрипт. В IE 11 после подтверждения вывода смешанного содержания все работает.Без подтверждения тоже игнорируется скрипт. Вопрос: как подсунуть этот скрипт drupal, чтоб он открывался не как смешанное содержимое. Сайт работает на https, естественно.

ВложениеРазмер
Иконка простого текстового файла checkout.txt3.69 КБ
0 Thanks

Комментарии

Аватар пользователя maiskiykot maiskiykot 4 апреля в 18:26

Вам ссылку на drupal.org дать? Все - это все. Вплоть до JSinjector. Ошибка везде одинаковая. Добавлю только, что ошибка на странице checkout, где вроде бы какие-то дополнительные модули включаются для безопасности. МОжет в этом дело.

Аватар пользователя vlucas vlucas 4 апреля в 19:47

Интересные люди. Наверное, ради помощи вопросы на форуме задаёте. Для решения вашей задачи нужна более детальная информация. Примеры кода напишите.

Аватар пользователя maiskiykot maiskiykot 4 апреля в 20:52

Практически стоковая корзина. Страница checkout. На ней раздел доставка. Хочу скрыть поля адреса, если получать в офисе. Приложенный файл как раз для этого. Какие примеры кода, если я ничего там не кодил?

Аватар пользователя vlucas vlucas 4 апреля в 20:57

Если смешанное содержимое, то скорее всего скрипт по http грузится, и вы как-то нестандартно его подключаете

Аватар пользователя maiskiykot maiskiykot 4 апреля в 21:26

Через template.php темы - как учили.

$base_url = path_to_theme();

if(!empty($_SERVER['HTTPS'])) {
$base_url = str_replace( "http://", "https://", $base_url );
}

if ($form['#id']='commerce-checkout-form-checkout') {
// у меня например 'commerce-checkout-form-checkout'
$form['#attached']['js'][] = array(
$base_url . '/j/checkout.js',
);
}
И много других вариантов перебрал

Аватар пользователя maiskiykot maiskiykot 4 апреля в 21:39

7. Брал все примеры прямо с drupal.org. Подключал модули - поведение во всех случаях одинаковое. Как-будто на самой странице checkout какая-то засада.

Аватар пользователя vlucas vlucas 4 апреля в 21:46

checkout.js - у вас в самой теме лежит в папке j, насколько понимаю.
У вас в скрипте много наворочено ненужного.
Попробуйте как в этом уроке https://niklan.net/blog/39

Аватар пользователя maiskiykot maiskiykot 4 апреля в 21:50

Этот скрипт я здесь взял. Вариантов подключения штук 10 перебрал. ПО ссылке - ничего нового. А что вы имеете в виду под лишним? В js никогда не был силен, а тем паче в jquery. Хоть переписывай на чистый js.

Аватар пользователя vlucas vlucas 4 апреля в 21:53

Я писал не про скрипт js (хотя и он требует оптимизации). А про то что вы наворотили в комментарии. Там лишние проверки на протоколы. Drupal сам подключит как нужно. Можно в settings $base_url явно указать, но при правильной настройке и без него должно работать.

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:04

Это уже от нечего делать добавил проверку https. Через states форма скрывается, но не появляется снова, через conditional fields вообще не работает. JS глючит - вот ведь незадачка.

Аватар пользователя vlucas vlucas 4 апреля в 22:06

При чем здесь js?
Вас выше в комментарии просили дать пример html-кода, где подключается скрипт.

Аватар пользователя vlucas vlucas 4 апреля в 22:21

А с чего вы взяли, что у вас именно с подключением этого скрипта связана ваше предупреждение о смешанном содержимом, полный текст которого вы так и не написали?

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:23

Методом включения/отключения. Станадртное предупреждение всплывающее в IE 11. FF ругается на кладр

Аватар пользователя vlucas vlucas 4 апреля в 22:26

На форуме 90% людей на linux и IE уже 1000 лет не видели, ну хоть скрин дайте, если отчет об ошибке никак не получается

Аватар пользователя VasyOK VasyOK 4 апреля в 22:29

Я так понял у Вас проблема в чекауте Комерца в зависимости от того что выбирает покупатель (чебоксы) показать то или иное содержимое? Это точно в Комерце через JS делается? (Я в Уберкарте иногда - да.) Неужели это сложно? Попробуйте сначала без бехайворов.

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:35

Я уже четыре варианта пробовал. Через JS - наиболее рабочий, если не считать того, что эта ошибка вываливается.

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:34

"Отображается только безопасное содержимое" и кнопка "Отображать содержимое". Если б не ослик - я бы вообще ничего не смог понять в этом случае. Остальные браузеры тупо молчат. Консоли полны мусора но от других модулей.

Аватар пользователя vlucas vlucas 4 апреля в 22:38

В консоле есть ошибка вида:
Mixed Content: The page at ... was loaded over HTTPS, but requested an insecure script ... This request has been blocked; the content must be served over HTTPS.
?

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:51

Нет такой ошибки. Проблема в том, что скрипт работает только в ie 11 и то после нажатия кнопки подтвердить смешанное отображение. Если бы в других браузерах хоть как-то работало - там просто тишина. По крайней мере на этот модуль ничего не ссылается.

Аватар пользователя vlucas vlucas 4 апреля в 22:42

И, кстати, это не только в IE. У себя в chrome тоже наблюдаю, только он блокирует небезопасный контент и не так навязчиво об этом сообщает

Аватар пользователя maiskiykot maiskiykot 4 апреля в 22:55

Content Security Policy: Игнорирую «'unsafe-inline'» внутри script-src: указано «strict-dynamic» (неизвестен)
Content Security Policy: Игнорирую «https:» внутри script-src: указано «strict-dynamic» (неизвестен)
Content Security Policy: Игнорирую «http:» внутри script-src: указано «strict-dynamic» (неизвестен)
Content Security Policy: Игнорирую «https://local.adguard.com» внутри script-src: указано «strict-dynamic» (неизвестен)

Это FF