Threepenny Gui - вставка файлов Javascript в заголовок HTML и неудачная реализация <script>
Я использую Threepenny GUI для реализации внешнего интерфейса графической базы данных. Чтобы сэкономить время, я хочу использовать уже созданные Javascript JQuery-ориентированные файлы кода на странице отображения графического интерфейса. Я использую браузер Firefox на Mac для его возможностей проверки HTML-кода.
При попытке включить элемент, связанный с холстом, возникла проблема.
Уже не написана функция для включения источника Javascript в отображаемый заголовок HTML-страницы.
Я обратился к этому, прочитав некоторый источник в Трипенни, чтобы определить, как создать свою собственную рутину. Заимствуя определение функции для addStyleSheet в качестве модели, код был скопирован в исходный код для его проверки:
UI.addStyleSheet rootWindow "gui_fmiq.css"
-- the following code does the above and works in this context --
el <- mkElement "link"
# set (attr "rel" ) "stylesheet"
# set (attr "type") "text/css"
# set (attr "href") ("/static/css/gui_fmiq.css")
getHead rootWindow #+ [element el]
В соответствии с HTML-инспектором Firefox в заголовке была установлена копия локального файла CSS, поэтому эта проблема была решена.
Однако, добавление файла jquery.js аналогичным образом привело к тому, что отображение HTML стало совершенно белым. Я не знаю, является ли это взаимодействием с версией Threequny jquery.js или нет. Тем не менее JQuery требуется кодом JavaScript.
Главная проблема:
Используя подобный стиль кода, я создал последовательность функций для создания примитива сценария HTML для помещения источника JavaScript в заголовок HTML:
inc_sketchScript <- mkElement "script"
# set (attr "src") "/static/sketch.js"
getHead rootWindow
#+ [
element inc_sketchScript
]
Включенный файл javascript не отображается в HTML-инспекторе Firefox, но терминал запуска Threepenny показывает его в ответе GET 200 на веб-сервере.
Использование очень похожего кода в более позднем определении canvas для использования включенного JavaScript:
canvas <- UI.canvas
# set UI.height canvasHeight
# set UI.width canvasWidth
# set style [("border", "solid black 1px"), ("background", "#eee")]
# set UI.id_ "simple_sketch"
#+ [
mkElement "script"
# set (attr "type") "text/javascript"
# set text "$(function() {$('simple_sketch').sketch(); });"
]
Ожидаемый HTML-код сценария вообще не отображается в HTML-инспекторе Firefox. Сам холст показывает на экране, но ничего не делает.
Этот вопрос для создателя Threepenny, Генриха Апфельма.
Заранее спасибо за любую помощь в этом!