这个javascript编码是否正确编写?

时间:2010-08-13 17:12:27

标签: javascript

我已经尝试了一些关于URL编码的技巧但到目前为止我没有成功。首先,我得到了这种格式,

var url = "http://www.polyvore.com/cgi/add?title=" 
      + encodeURIComponent(%%GLOBAL_ProductName%%) 
      + "&url=" + encodeURIComponent("http://lilaboutique.co.uk/products/" 
          + encodeURIComponent(%%GLOBAL_ProductName%%) 
          + "&imgurl=" + encodeURIComponent(%%GLOBAL_ThumbImageURL%%) 
          + "&desc=" + encodeURIComponent(%%GLOBAL_ProductDesc%%) 
          + "&price=" + encodeURIComponent(%%GLOBAL_ProductPrice%%));

由于什么原因从未被传递给href dunno。然后我又玩了一些,

var url = "http://www.polyvore.com/cgi/add?title=encodeURIComponent(%%GLOBAL_ProductName%%)&url=http://lilaboutique.co.uk/products/encodeURIComponent(%%GLOBAL_ProductName%%)&imgurl=encodeURIComponent(%%GLOBAL_ThumbImageURL%%)&desc=encodeURIComponent(%%GLOBAL_ProductDesc%%)&price=encodeURIComponent(%%GLOBAL_ProductPrice%%)";

这次传递了url,但是在显示编码函数本身的相应字段和其他字段之间混合了值。

非常感谢任何澄清我的错误的帮助。我想编码只是价格和描述,似乎是给出问题的领域。

常规链接确实呈现没有问题

var url = "www.google.com";

var myAnchor = document.getElementById('myAnchor');

myAnchor.href = url;

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

更好,更清洁的方式:

var toEncode = {
  title:    '%%GLOBAL_ProductName%%',
  url:      'http://lilaboutique.co.uk/products/%%GLOBAL_ProductName%%',
  imgurl:   '%%GLOBAL_ThumbImageURL%%',
  desc:     '%%GLOBAL_ProductDesc%%',
  price:    '%%GLOBAL_ProductPrice%%'
};

var index, queryString = '';

for (index in toEncode)
{
  queryString += index + '=' + encodeURIComponent(toEncode[index]) + '&';
}

var url = "http://www.polyvore.com/cgi/add?" + queryString;

答案 1 :(得分:0)

jQuery的$.param(obj)very nice

总的来说,如果你想自己动手,我会采取类似的方法。创建一个接受Object的函数,并返回一个查询字符串。然后在您的服务器模板中,您有:

var urlData = {
  url: "http://lilaboutique.co.uk/products/",
  imgurl: "%%GLOBAL_ThumbImageURL%%",
  desc: "%%GLOBAL_ProductDesc%%"
  // etc...
}

var url = "http://www.polyvore.com/cgi/add?" + $.param(urlData);

或者您想要使用的任何转换功能。