Взял тут на форуме простейший скрипт - хотел прикрутить себе. Однако при попытке подключения всеми возможными способами выдается ошибка - смешанное содержимое и скрипт не работает. Никаких ошибок никуда не кидает. Скрипт состоит по сути из одной функции. Правильность кода проверил многократно. Что это может быть? Ошибка перехватывается в IE 11, остальные браузеры молча игнорируют скрипт. В IE 11 после подтверждения вывода смешанного содержания все работает.Без подтверждения тоже игнорируется скрипт. Вопрос: как подсунуть этот скрипт drupal, чтоб он открывался не как смешанное содержимое. Сайт работает на https, естественно.
Вложение | Размер |
---|---|
![]() | 3.69 КБ |
Комментарии
А как подключаете то?
Все способы перебрал кроме библиотеки разве что.
Все - это какие? Давайте подробности, экстрасенсы в отпуске
Вам ссылку на drupal.org дать? Все - это все. Вплоть до JSinjector. Ошибка везде одинаковая. Добавлю только, что ошибка на странице checkout, где вроде бы какие-то дополнительные модули включаются для безопасности. МОжет в этом дело.
Мне? Нет, не нужно. Ждите экстрасенсов
Интересные люди. Наверное, ради помощи вопросы на форуме задаёте. Для решения вашей задачи нужна более детальная информация. Примеры кода напишите.
Практически стоковая корзина. Страница checkout. На ней раздел доставка. Хочу скрыть поля адреса, если получать в офисе. Приложенный файл как раз для этого. Какие примеры кода, если я ничего там не кодил?
Хотя бы как вы его подключаете?
Нужен пример html-кода, где подключается скрипт.
Если смешанное содержимое, то скорее всего скрипт по http грузится, и вы как-то нестандартно его подключаете
Через 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',
);
}
И много других вариантов перебрал
Видимо учителя не совсем компетентные...
У вас D7/D8?
7. Брал все примеры прямо с drupal.org. Подключал модули - поведение во всех случаях одинаковое. Как-будто на самой странице checkout какая-то засада.
checkout.js - у вас в самой теме лежит в папке j, насколько понимаю.
У вас в скрипте много наворочено ненужного.
Попробуйте как в этом уроке https://niklan.net/blog/39
Этот скрипт я здесь взял. Вариантов подключения штук 10 перебрал. ПО ссылке - ничего нового. А что вы имеете в виду под лишним? В js никогда не был силен, а тем паче в jquery. Хоть переписывай на чистый js.
Я писал не про скрипт js (хотя и он требует оптимизации). А про то что вы наворотили в комментарии. Там лишние проверки на протоколы. Drupal сам подключит как нужно. Можно в settings $base_url явно указать, но при правильной настройке и без него должно работать.
Это уже от нечего делать добавил проверку https. Через states форма скрывается, но не появляется снова, через conditional fields вообще не работает. JS глючит - вот ведь незадачка.
При чем здесь js?
Вас выше в комментарии просили дать пример html-кода, где подключается скрипт.
А с чего вы взяли, что у вас именно с подключением этого скрипта связана ваше предупреждение о смешанном содержимом, полный текст которого вы так и не написали?
Методом включения/отключения. Станадртное предупреждение всплывающее в IE 11. FF ругается на кладр
На форуме 90% людей на linux и IE уже 1000 лет не видели, ну хоть скрин дайте, если отчет об ошибке никак не получается
Я так понял у Вас проблема в чекауте Комерца в зависимости от того что выбирает покупатель (чебоксы) показать то или иное содержимое? Это точно в Комерце через JS делается? (Я в Уберкарте иногда - да.) Неужели это сложно? Попробуйте сначала без бехайворов.
Я уже четыре варианта пробовал. Через JS - наиболее рабочий, если не считать того, что эта ошибка вываливается.
"Отображается только безопасное содержимое" и кнопка "Отображать содержимое". Если б не ослик - я бы вообще ничего не смог понять в этом случае. Остальные браузеры тупо молчат. Консоли полны мусора но от других модулей.
В консоле есть ошибка вида:
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.
?
Нет такой ошибки. Проблема в том, что скрипт работает только в ie 11 и то после нажатия кнопки подтвердить смешанное отображение. Если бы в других браузерах хоть как-то работало - там просто тишина. По крайней мере на этот модуль ничего не ссылается.
Сайт в продакшене доступен?
И, кстати, это не только в IE. У себя в chrome тоже наблюдаю, только он блокирует небезопасный контент и не так навязчиво об этом сообщает
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