Есть pdf-листалка (Real3d jQuery), реализованная как jQuery plugin, пытаюсь вставить его в одну из страниц "Сайты24"
Общая логика от разработчика (работающая в его примерах) такая 1. В Head добавляем jQuery <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"></script>; 2. В Head добавляем его инициализатор <script src="..../flipbook.min.js"></script> 3. По концу загрузки DOM от jQuery вставляем инициализацию объекта <script type="text/javascript"> $(document).ready(function () { $("#container").flipBook({ ... </script> 4. В Body в нужном нам месте заводим div с id="container", например <div style="position:relative;width:100%;height:700px"> <div id="container" style="position:absolute;width:100%;height:100%"> </div> </div>
Пытаюсь реализовать это через расширенные дела "Сайтов24", то есть
1. все, что нужно вставить в Head (пункты 1, 2, 3) в свойствах страницы "Сайтов24" в пользовательский Script/css вставляю, 2. div контейнера (пункт 4) - через html-блок внутри самой страницы определяю место, где плагин будет показывать листалку.
Итог: никакой листалки и ошибка javascript "flipBook is not a function"
Сам разработчик в комментах по поводу этой ошибки говорит, что так может быть, если скрипт не подключен или кто-то снес хуки функций jQuery. Что скрипт подключается - точно, я оттуда в лог сообщения отладочные кидаю. А кто может сносить хуки функций - непонятно.
При этом сразу после включения flipbook.min.js проверка console.log("flipBookAccess type is: " + typeof ($("#container").flipBook)); возвращает, что это функция, но тот же вызов внутри $(document).ready возвращает undefined
Есть одно решение, но оно не очень нравится, так как не объясняет проблемы. Если включение <script src="..../flipbook.min.js"> перенести в html блок, который непосредственно в body создается, то создание объекта в ready начинает работать.