Проблемы с cl-who, parenscript и кавычками при генерации встроенного JavaScript

Итак, я запускаю учебник по parenscript, используя следующий код:

    (defparameter *js-string-delimiter* #\")
    (hunchentoot:define-easy-handler (tutorial1 :uri "/tutorial1") ()
    (cl-who:with-html-output-to-string (s)
                (:html
                 (:head (:title "Parenscript tutorial, example 1"))
                 (:body (:h2 "Parenscript totorial: 1st example")
                    "Please click the link below." :br
                    (:a :href "#" :onclick (parenscript:ps (alert "Hello World!"))
                    "Hello World!")))))

Страница отображается, но интерактивная ссылка не работает. Когда я просматриваю источник, я получаю следующее:

<html><head><title>Parenscript tutorial, example 1</title></head><body><h2>Parenscript totorial: 1st example</h2>Please click the link below.<br /><a href='#' onclick='alert('Hello World!');'>Hello World!</a></body></html>

Который не работает. Мне нужна функция оповещения, заключенная в кавычки ", а не в кавычки". Что я делаю не так?

1 ответ

Хорошо, после нескольких осмотров я обнаружил, что учебник кажется неправильным. Вместо использования parenscript:ps для генерации кода, вы должны использовать parenscript:ps-inline, чтобы получить правильное цитирование.

Надеюсь, это поможет кому-то еще.

Другие вопросы по тегам