javascript:alert()中为什么不能使用空格

<a href=javascript:void(0) onclick = javascript:alert('" & x_msg & "') style =text-decoration:none;color:Red >" & m(i) & "</a>
以上是我的一段javascript代码,当x_msg 字符串含有空格的时候就会出错!?我百思不得其解,更郁闷的是回车符竟然可,就是不能空格。望高手指点。
我是用VS.NET 2008 做的,这段代码是在VB代码下插入的,不是在HTML里。
我用了 Table1控件然后把 <a href=javascript:void(0) onclick = javascript:alert('" & x_msg & "') style =text-decoration:none;color:Red >" & m(i) & "</a> 当字符串插入到Table1的单元格里。 一楼的答案肯定不行,我试过。二楼的答案多这么多个"""我看也很不靠谱。不过还是谢谢二位,至于代码的格式我想我的应该是OK,就是不知到为什么一遇到空格就出错,没有空格都OK!? 貌似alert对空格有别的用途,这才是我想了解的。
------------------------------------------------------------------------------------------------------------
问题解决了,当初我不知道 双引号 需要用到 转义字符。我用的是VB ,双引号 的转义字符是 "":
<a href=javascript:void(0) onclick = "":javascript:alert('" & x_msg & "')"": style ="":text-decoration:none;color:Red "":>" & m(i) & "</a>
这样子当 x_msg 字符串变量 接收到 有空格的 字符串,浏览器不会吧 空格 当作停止符。

第1个回答  2011-09-06
如果单单说修正这段HTML代码,其实不难:

<a href="javascript:void(0);" onclick="javascript:alert(' & x_msg & ');" style="text-decoration:none;color:Red" > & m(i) & </a>

但是按我猜测,你的这段代码是从某段别的代码里扣下来的,其实不是很全;
假如你是在ASP里使用这段代码,就需要做些更改:

"<a href="""javascript:void(0);""" onclick="""javascript:alert('" & x_msg & "');""" style="""text-decoration:none;color:Red""" >" & m(i) & "</a>"
第2个回答  2011-09-06
上面代码有错误,改成如下就可以了:
<a href=javascript:void(0) onclick = "javascript:alert(' & x_msg & ');" style =“text-decoration:none; color:Red”>" & m(i) & "</a>
注:在使用js的时候最好在该加""的地方加上""否则会遇到莫名其妙的错误。本回答被提问者采纳
第3个回答  2011-09-07
空格对alert()没有影响。请你看一下,页面在浏览器中的源码。看看x_msg的内容是什么。就可以看出问题所在了。
第4个回答  2011-09-08
建议用完整一点标准的html

onclick后面要用引号,然后x_msg要用Server.HTMLEncode(x_msg)编码一下,如下
这里是以asp为例。
<%
x_msg = Server.HTMLEncode(x_msg)
%>
<a href="javascript:void(0)" onclick="alert('a b c d "')" style="text-decoration:none;color:Red" >" & m(i) & "</a>追问

If x_msg "" Then

m(i) = "" & m(i) & ""

End If
我的代码格式是这样子的,依你这个的方式行不通。

追答

你用这段代码

If x_msg "" Then
x_msg = Server.HTMLEncode(x_msg)
m(i) = "" & m(i) & ""

End If

我给的只是一个原理,你自己应该变通一下。

按你的意思,asp的变量双引号中间就不能有双引号了吗?如果是那样的话,微软也太逊了。

第5个回答  2011-09-07
onclick = 后面还是要加引号撒,不加引号,空格的话就在空格出结束了。追问

If x_msg "" Then

m(i) = "" & m(i) & ""

End If
这段是我的代码,要怎么改。

相似回答