Безобидный скрипт ломает Drupal 8. Почему?

Главные вкладки

Аватар пользователя Babylon Babylon 27 августа 2019 в 3:30

Всем привет.
Решил, не долго думая, вывести Яндекс кнопку, чтобы менялся номер кошелька, испортил страницу Друпала. Кнопка вывелась нормально, но пропали вкладки редактирования и просмотра, меню администратора потеряло фиксацию, стало ездить вместе со страницей.
Вывел в блоке, вот содержимое:

function koshelek_item() {
var p = '<p id="zag" class="zagolovok">';

var fio =  document.getElementsByClassName('field field--name-field-fio field--type-string field--label-above')[0].getElementsByClassName('field__item')[0].innerHTML;

var lich = ' - личный кошелёк.<p>';

var item = document.getElementsByClassName('field field--name-field-koshelek-yandeks field--type-string field--label-above')[0].getElementsByClassName('field__item')[0].innerHTML;

var ifr1 = '<iframe src="https://money.yandex.ru/quickpay/shop-widget?writer=seller&targets=%D0%9...';

var ifr2 = '" width="406" height="240" frameborder="0" allowtransparency="true" scrolling="no"></iframe>';

var iframe = p + fio + lich + ifr1 + item + ifr2;
document.write(iframe);
}
koshelek_item();

Блок разместил на страницах /user/*
В чем причина? Не по правилам вывел JS? Но ведь Друпал глотает. От чего у него разметка едет?

Лучший ответ

Аватар пользователя ivnish ivnish 28 августа 2019 в 8:56

Модуль JS/CSS Injector - это ад веб-разработчика. Для тех, кто его написал и использует в аду есть отдельный котел Smile

Комментарии

Аватар пользователя marassa marassa 27 августа 2019 в 6:24

Навскидку вижу, что тег <p> два раза открывается и ни разу не закрывается. Формально это не ошибка, но попробуйте всё же написать нормальный HTML. И вообще прогоните всю страницу через валидатор.

Аватар пользователя Babylon Babylon 27 августа 2019 в 6:40

Точно, слэшь во втором теге пропустил, а насчет валидатора точно, я и забыл, сервисы же есть.
Спасибо.

Аватар пользователя Babylon Babylon 28 августа 2019 в 8:47

Короче вывод я такой сделал, не надо ни чего выдумывать, хотел по-быстрому, сложить все в одно место и запустить. Нет, так не получается... Разложил все по местам и сразу заработало. Модуль JS/CSS Injector прекрасная подмога в этом деле.

Аватар пользователя ivnish ivnish 28 августа 2019 в 8:56

Модуль JS/CSS Injector - это ад веб-разработчика. Для тех, кто его написал и использует в аду есть отдельный котел Smile