这是一样的代码,只是放的位置不同。
1.直接放在script标签内部。alert("&".indexOf("&"));//输出-1
alert("&amp;");//输出&amp;2.放在HTML元素内部。<input name='test' type="text" onclick='alert("&".indexOf("&amp;"));alert("&amp;");'>依次输出0和&为什么这两段代码一个对&amp;进行了解析,另一个却没有呢?

解决方案 »

  1.   

    alert("&".indexOf("&amp;"));//输出-1
    在“&”的字符串中找不到“&amp”返回-1;
      

  2.   

    alert("&amp;");//输出&amp;
    直接打印的"&amp;" 相当于输出
      

  3.   

    &amp;在html中会被转义
    在<script>不会。
      

  4.   

    我知道是没有找到,但是为什么在HTML元素中的解析了呢?
    很明显,在HTML元素中的找到了。
      

  5.   

    那是不是所有的在HTML属性中的脚本中,
    如果含有HTML实体,在执行脚本的时候,
    都会先转化成真正的符号之后再执行脚本啊???
      

  6.   

    只要是在html标签内  这些特殊的字符串都会转化成相应的符号在执行脚本的。当然也可以通过转义来避免这种情况
    alert("\&\amp;")这样就可以吧这个字符打印出来了
      

  7.   

    编码问题真繁琐啊!!!alert("好".charCodeAt(0));在不同的编码下面弹出不同的值啊!!!怎样使浏览者的浏览器使用我们代码编写者建议的编码啊?
    是不是下面的代码决定了浏览器首先使用的编码啊?<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
      

  8.   

    一般这么做:
    在文档中定义<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    还要将文件存为 国标码 格式,(比如用Editplus,存为gb2312,要与文档设定的保持一致)