将带有空格的字符串传递给javascript

时间:2009-12-21 12:09:38

标签: javascript

我正在尝试将带有空格的php定义字符串传递给javascript函数,以便我可以附加到查询字符串。但是,该函数仅在没有空格时才有效,并且在有空格时甚至不执行 - 通过使用alert()进行测试。

有没有办法可以将包含空格的字符串传递给javascript函数,这样我最终可以执行escape(),然后追加到我的查询字符串? (在此示例中使用alert())

.php文件     

<a onClick=showUser('<?php echo $stringwithspaces; ?>')>click here</a>

.js文件

function showUser(str)
{
alert (str);
}

如果我只能做...... onClick=showUser(escape('<?php echo $deptname; ?>'))这样的事情......那会很棒,但那不起作用。任何帮助将非常感激!谢谢!

3 个答案:

答案 0 :(得分:7)

问题是你没有引用attribute value。仅当值不包含空格时,才能将引号从属性值中删除,否则HTML处理器无法判断属性何时结束。即便如此,也不建议这样做;你应该总是引用HTML属性。

<a href="showUser('<?php echo addslashes($username) ?>')">user</a>

应该有效。对addslashes的调用会转义引号,否则会引起另一个问题(过早地结束showUser的属性或字符串参数。)

答案 1 :(得分:1)

是的,您可以在xml属性字段中遗漏: 每个属性都必须有一个开头和结尾

myField= blabla ...

onClick="showUser(escape('<?php echo $deptname; ?>'))"

答案 2 :(得分:-1)

尝试使用空格字符的Unicode转义序列'\ u0020'。