js转义问题

js转义问题有很多场景,比如常见的根据某个字符串删除或者修改以及将某字符串传递至某个页面。

今天以一个简单的示例代码为例:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试</title>
</head> 

<body>
<a href=‘#‘ onclick="test001(1)">测试001</a>
<a href=‘#‘ onclick="test002(你好)">测试001</a>
<script>
function test001(id){
alert(id);
}

function test002(name){
alert(name);
}
</script>

</body>
</html>

页面效果图如下:

当我点击测试001时,出现如图:

显然是符合预期结果的。

但是当我点击测试002时,出现如图:

什么也没有出现,于是我通过f12调试了一下,结果如图:

显示某某未定义

那么最终如何解决这个你好 is not defined问题???
通常出现未定义问题,是因为我们用了这个变量,但是并没有在对应的js文件中定义。

解决这个你好 is not defined问题,很简单,只需加一个转义符即可。

比如将:

<a href=‘#‘ onclick="test002(你好)">测试001</a>

修改为:

<a href=‘#‘ onclick="test002(‘\你好‘)">测试001</a>

接下来,点击测试002,就可以看到对应的效果,如图:

那么为什么会出现这个转义问题?
我搜了一些资料,但是仍然觉得很疑惑。

原文地址:https://www.cnblogs.com/youcong/p/11253279.html

时间: 2024-10-09 19:11:21

js转义问题的相关文章

不怕不知道,就怕不知道——js转义问题

碰到一个比较变态的需求,由于前台产品显示的需要,后台录入的时候,需要注意很多点,比如这里要输入的标点符号必须是全角的,那里输入的标点符号必须是半角的. 如果是你拿到这种需求,你会怎么办呢? 这种东西,网上资料还是很多的,不过几乎所有的都不能直接解决你的问题.我在做这个需求的时候,一看是的想法是:用户输入错误时,给他一个提示. 这样问题来了,用户不断的输入,不断的弹出alert(),体验是很不友好的. 然后我就采取了第二种方案,用户输入过程中有误时,我就在文本框后面加一个<span>提示框.提示

js 转义特殊字符到 html

<html>       <head>         <meta charset="UTF-8">         <title>js 转义特殊字符到 html</title>     </head>     <body>           <div id="div1" ></div>           <div id="div2&quo

js转义和反转义html

本文地址: http://www.cnblogs.com/daysme/p/7100553.html 下面的代码网上常用有,但不是想要的. JS实现HTML标签转义及反转义 http://blog.csdn.net/wangyuheng77/article/details/50315051 简单说一下业务场景,前台用户通过input输入内容,在离开焦点时,将内容在div中显示.这时遇到一个问题,如果用户输入了html标签,则在div显示中,标签被解析.由于是纯前端操作,不涉及后端,因此需要通过j

js 转义双引号

在写js时,里面有很多的单引号和双引号,可以直接转义 imgHmtl += '<dl>'+       '<dt><img src="'+objUrl+'" id="img" /></dt>'+       '<dd onclick="delImg(this, "'+ident+'")"></dd>'+    '</dl>' ; $('#upL

JS转义 escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数 描述 string 必需.要被转义或编码的字符串. 返回值 已编码的 str

js 转义

function html_encode(str) {     var s = "";     if (str.length == 0) return "";     s = str.replace(/&/g, "&");     s = s.replace(/</g, "<");     s = s.replace(/>/g, ">");     s = s.rep

js转义html中的字符

出自:stenio365的博客 //去掉html标签function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签}//普通字符转换成转意符function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':'>','&

phalcon: 上下文转义

Phalcon\Escaper 转义特殊的字符 一:字符转义 $maliciousTitle = '</title><script>alert(1)</script>'; $e = new Phalcon\Escaper(); echo $e->escapeHtml($maliciousTitle) 最不安全的情形即是在html标签中插入非安全的数据 我们可以使用escapeHtml方法对这些文本进行转义: $e->escapeHtml('></

js escape

JS转义 escape().encodeURI().encodeURIComponent()区别详解 JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escap