javascript
  • xhtml-1.0-strict
  • 2011-06-01 58 views 1 likes 
    1

    我需要在javascript中编写url,但不知道是否应该为&符号写&。Xhtml写URL,哪一个是正确的?

    <script type="text/javascript"> 
    <![CDATA[ 
    var link = 'http://example.com/query?id=1' . '&ref=' . document.referrer; 
    ]]></script> 
    

    或者

    <script type="text/javascript"> 
    <![CDATA[ 
    var link = 'http://example.com/query?id=1' . '&amp;ref=' . document.referrer; 
    ]]></script> 
    

    回答

    4

    CDATA,就没有必要逃避&,它不应该在产生的URL进行转义,所以第一个是正确的。

    +2

    差不多。你仍然需要[编码](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent)'document.referrer'。 – Quentin 2011-06-01 12:34:03

    +0

    如果您拿走了CDATA标记,那么第二个示例将是正确的(除了再次编码),但不兼容HTML。 – Quentin 2011-06-01 12:34:43

    +0

    @昆汀丁:的确如此。我专注于两个代码段之间的区别。 – 2011-06-01 12:34:47

    2

    正确会

    <script type="text/javascript"> 
    <![CDATA[ 
    var link = 'http://example.com/query?id=1' + '&ref=' + encodeURIComponent(document.referrer); 
    ]]></script> 
    

    你绝不能在CDATA节XML-转义字符。首先使用它们的整个

    但请注意您忘记的URL编码。并且JavaScript字符串连接与+一起使用,而不是.

    相关问题