首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反斜杠转义不适用于HTML属性

反斜杠转义不适用于HTML属性
EN

Stack Overflow用户
提问于 2018-05-04 18:49:15
回答 1查看 973关注 0票数 0

我尝试在下面的代码中检查HTML属性值中的反斜杠是否使它旁边的字符转义:

代码语言:javascript
复制
<button id="b1" onclick="$('body').append('<button onclick=alert(\'something\');>')">test</button>

在这里,如果反斜杠有效,那么当我们单击over #b1时,一个新的按钮应该已经附加到,当我们单击这个新按钮时,应该会弹出一个新的警报。但事实并非如此,这意味着反斜杠转义不能在HTML属性中工作。这是正确的吗?那我该怎么逃避呢?

当我尝试打开带有查看源:前缀的网页时,我看到了下面的代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
 <head>
  <title>
   Hi there!
  </title>
  <meta name="viewport" content="width=device-width">
  <script src="jQuery.js"></script>
  <style>
    .red{color: red;} 
  </style>
 </head>
 <body>
  <button id="b1" onclick="$('body').append('<button onclick=alert(+AFw'something+AFw');>test</button>')">
    test
  </button>
  <script src="question.js"></script>
 </body>
</html>

这里,反斜杠被替换为+AFW。这样做不对吗?此外,如果我尝试将onclick属性值更改为doIt();,并将下面的代码添加到question.js文件中,它将完美地工作:

代码语言:javascript
复制
function doIt(){
    alert("<button onclick=\"alert('hi');\"> ");
}

但正如问题所述,我们必须找出为什么反斜杠转义不能在HTML属性值中工作。另外,我想要定义按钮单击时会发生什么,就在属性中。

谢谢你提前提供信息.

EN

回答 1

Stack Overflow用户

发布于 2018-05-04 19:06:39

好像起作用了。下面是可运行的脚本/示例

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="b1" onclick="$('body').append('<button onclick=alert(\'something\');>test</button>')">test</button>

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

https://stackoverflow.com/questions/50181427

复制
相关文章

相似问题

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