我的代码:
window.open("http://www.facebook.com/sharer.php?u="+urlToShare+"&"+"t="+"test","_blank", "width=700, height=400");
在生成的网址' & amp; '应该替换为' & ',对吧?但是,它并没有被替换。
答案 0 :(得分:4)
没有
要在HTML文档中表示为数据的&
应该(除了少数例外,例如在<script>
内或在后跟空格时)表示为{{1} }。在解析HTML之后,浏览器会将其解释为&
。
在这种情况下,您有JavaScript(不是HTML)和URL(也不是HTML),因此没有要解析的HTML,所以HTML解析规则会将&
读作{{1不适用。
答案 1 :(得分:0)
不是HTML格式。任何地方都不允许Character references:
在其他部分中描述的某些情况下,可能会混合使用文字 字符引用。
当HTML解析器finds a <script>
tag时,它会将标记生成器切换为script data state。
与data state不同,脚本数据状态没有字符引用。
所以只需使用&
代替&
。
<!-- This is HTML -->
<script>
alert('&');
</script>
但是,在XHTML中需要&
,因为在XML中,解析器根据元素没有不同的行为。
<!-- This is XHTML -->
<script>
alert('&');
</script>
但是在JS代码中使用&
是不可取的,因此您可以将代码包装在CDATA section
<!-- This is XHTML -->
<script><![CDATA[
alert('&');
]]></script>