首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >世卫组织总是以单引号开头。

世卫组织总是以单引号开头。
EN

Stack Overflow用户
提问于 2019-04-24 03:27:37
回答 1查看 115关注 0票数 2

我的问题是,CL-WHO在将Lisp表达式转换为html输出时,以单价市场开始每个表达式。这在大多数情况下都是可以的,但这是一个问题,因为我将我的文件链接到外部javascript文件。我试图使这个项目变得简单,而且由于我的团队中没有一个javascript开发人员知道Common,所以使用parenscript很可能超出了方程式。下面是我的问题和我的程序中的一个错误:

代码语言:javascript
复制
:onclick "alertUser('id')"

当在html文档中按下特定元素时,这应该会触发名为JavaScript的alertUser函数,并且标记的id应该作为参数传递给JavaScript函数。但是无论我做什么,CL-WHO都会将该字符串转换为单引号,因此我最终得到了一个无效的表达式。下面是代码转换成的内容:

代码语言:javascript
复制
onclick='alertUser('id')'>

所有内容都是单引号,因此'alertUser(‘)作为第一个字符串传递,这显然是无效的,并且我在开发人员工具中收到了一个语法区域。我认为我可以通过使用带转义字符的格式函数来解决这个问题。这相当于:

代码语言:javascript
复制
CL-USER> (format t "\"alertUser('id')\"")
"alertUser('id')"
NIL
CL-USER> 

但当我试着用CL-WHO:

代码语言:javascript
复制
:onclick (format nil "\"alertUser('id')\"")

这意味着:

代码语言:javascript
复制
onclick='"alertUser('locos-tacos-order')"'>

也是无效的html。正如你所看到的,无论什么情况,CL-WHO都将以一个单引号开始。接下来,我尝试了CL-WHO fmt功能:

代码语言:javascript
复制
:onclick (fmt "\"alertUser('locos-tacos-order')\"")

当我使用fmt函数时,当它被转换成html时,它会完全摆脱my :onclick表达式!:

代码语言:javascript
复制
id='id'"alertUser('id')">

最后,我尝试了str函数,得到了与我最初的尝试类似的无效输出:

代码语言:javascript
复制
onclick='"alertUser('id')"'

显然,如果我用纯html编写这个代码,它将看起来如下所示:

代码语言:javascript
复制
onclick="alertUser('id')">

这是有效的。我的问题只是如何使CL-谁在这些情况下使用双引号而不是单引号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 07:26:25

@jkiiski在我问题下面的评论中得到了正确的答案,但我想贴出答案,以便将来任何有类似问题的人都能解决这个问题。正如@jkiiski所言,在cl- there包中有一个名为ATTRIBUTE--CHAR的变量,默认为#\‘。您可以简单地将该变量设置为#\“,以便默认引号为双引号:

代码语言:javascript
复制
(setf *attribute-quote-char* #\")

在将该代码行添加到文件顶部附近后,html默认为:

代码语言:javascript
复制
onclick="alertUser('id')"

现在,javascript可以正确执行。给@jkiiski一个正确的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55821970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档