在Javascript中将邮件合并变量转换为带引号的字符串

时间:2014-01-02 19:18:00

标签: javascript

我在一个专有系统中工作,该系统能够添加HTML和Javascript来创建自定义页面。系统能够将用户配置文件字段插入HTML / Javascript等邮件合并标签。在我正在开发的项目中,我正在使用其中一个用户字段(User_Region)中的值附加到URL,并为每个用户创建指向另一个系统的个性化链接。

我可以在值为数字(12345)时成功附加URL,但在文本或字母数字时不能。例如,“佛罗里达”和“123456a”都不起作用。

这是我正在使用的代码:

 <script>
(function() {
var originalURL = "https://www.mywebsite.com/index.php";
var userRegion = {User_Region};
document.write("NewURL = " + originalURL + "?id=" + userRegion);
})();
</script>

代码{User_Region}是我用来从用户个人资料字段插入变量的邮件合并标记。如果region变量是像123456这样的数字,它可以很好地工作,它将输出这样的URl:

https://www.mywebsite.com/index.php?id=123456

但是,如果区域变量是佛罗里达或123456a等文本或字母数字,则脚本不起作用。 Document.write不输出任何内容。似乎功能要么停止要么停止。我猜这与数据类型问题有关,但我似乎无法弄明白。

如果我将变量硬编码为像这样的字符串,则该函数可以正常工作。

<script>
(function() {
var originalURL = "https://www.mywebsite.com/index.php";
var userRegion = 'Florida';
document.write("NewURL = " + originalURL + "?id=" + userRegion);
})();
</script>

以上代码将输出正确的URL,如下所示:

https://www.mywebsite.com/index.php?id=Florida

我尝试过多种方法将单引号添加到{User_Region}变量,但没有成功。

有没有人建议我如何才能做到这一点?

预先感谢您的协助!

1 个答案:

答案 0 :(得分:0)

您是否尝试将其封装在引号中:

var userRegion = '{User_Region}';

因为我猜你的框架只是用其他东西取代{User_Region},如果我弄错了,请通知我。我不太明白这个tag是什么。你可以看到,在JS中,花括号用于定义对象。