Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&;的onXXX处理程序转义中的javascript;in参数_Javascript - Fatal编程技术网

&;的onXXX处理程序转义中的javascript;in参数

&;的onXXX处理程序转义中的javascript;in参数,javascript,Javascript,我有一个带有onclick javascript的脚本。此javascript调用JS库(包含在pagehead中)中的某些函数。在函数参数中转义&字符的正确方法是什么(或是否需要)?例如: <a href="#" onclick="showPop(this,1,'url.pop','m123','&f=a');"> vs 或者它是否取决于文档类型(html4/xhtml/html5/???),例如: <?xml version="1.0" encoding=

我有一个带有onclick javascript的脚本。此javascript调用JS库(包含在pagehead中)中的某些函数。在函数参数中转义&字符的正确方法是什么(或是否需要)?例如:

<a href="#" onclick="showPop(this,1,'url.pop','m123','&f=a');">

vs


或者它是否取决于文档类型(html4/xhtml/html5/???),例如:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="nl" xml:lang="nl" xmlns="http://www.w3.org/1999/xhtml">

vs


一般来说,最好的做法是首先远离
onXyz
属性处理程序,尤其是因为处理涉及的不同文本解释层的复杂性。相反,使用现代事件处理。也就是说:

属性中的文本是HTML文本,在编写JavaScript代码时很容易忘记它。:-)如您所述,为了在HTML中表示符号和,我们使用
&

<a href="#" onclick="showPop(this,1,'url.pop','m123','&amp;f=a');">
<!-- Note --------------------------------------------^^^^^     -->

该属性的结果值将是
&f=a
,因为浏览器的HTML解析器在读取HTML文本时会对其进行解释,并相应地设置属性值

还是取决于文档类型(html4/xhtml/html5/??)


没有<代码>&
&在HTML4、XHTML和HTML5中。

一般来说,最好的做法是首先远离
onXyz
属性处理程序,尤其是因为处理涉及的不同文本解释层的复杂性。相反,使用现代事件处理。也就是说:

属性中的文本是HTML文本,在编写JavaScript代码时很容易忘记它。:-)如您所述,为了在HTML中表示符号和,我们使用
&

<a href="#" onclick="showPop(this,1,'url.pop','m123','&amp;f=a');">
<!-- Note --------------------------------------------^^^^^     -->

该属性的结果值将是
&f=a
,因为浏览器的HTML解析器在读取HTML文本时会对其进行解释,并相应地设置属性值

还是取决于文档类型(html4/xhtml/html5/??)


没有<代码>&
&在HTML4、XHTML和HTML5中。

非常感谢!问这个问题的原因是:我正在将javascript从页面移动到事件处理程序(使用jQuery)。政府;在以后的某一点上给出一个错误。我的确切问题是,我将不得不在一段时间内维护这两个版本:(我私下希望这两个符号都是有效的…;)@hetOrakel:Oh fun.:-)是的,在JavaScript代码中,它必须是
“&f=a”
。大多数浏览器都能容忍无效的HTML标记。HTML5规范甚至详细说明了如果浏览器在HTML文本中看到
&
,然后看到一些它无法理解为字符实体的内容时应该做什么。因此,通常情况下,即使在属性中也可以使用
“&f=a”
,因为浏览器会看到它不是有效的字符实体,备份其解析器,并将其视为文本
&
。但是,如果你碰巧写了一些可以被看作是实体的东西,那会咬到你的。@hetOrakel:人们总是在URL中意外地依赖它。考虑:
这是无效的。应该是
,但我们一直在这样做,这就是为什么浏览器是宽容的。非常感谢!问这个问题的原因是:我正在将javascript从页面移动到事件处理程序(使用jQuery)。政府;在以后的某一点上给出一个错误。我的确切问题是,我将不得不在一段时间内维护这两个版本:(我私下希望这两个符号都是有效的…;)@hetOrakel:Oh fun.:-)是的,在JavaScript代码中,它必须是
“&f=a”
。大多数浏览器都能容忍无效的HTML标记。HTML5规范甚至详细说明了如果浏览器在HTML文本中看到
&
,然后看到一些它无法理解为字符实体的内容时应该做什么。因此,通常情况下,即使在属性中也可以使用
“&f=a”
,因为浏览器会看到它不是有效的字符实体,备份其解析器,并将其视为文本
&
。但是,如果你碰巧写了一些可以被看作是实体的东西,那会咬到你的。@hetOrakel:人们总是在URL中意外地依赖它。考虑:
这是无效的。它应该是
,但我们一直在这样做,这就是为什么浏览器是宽容的。
<a href="#" onclick="showPop(this,1,'url.pop','m123','&amp;f=a');">
<!-- Note --------------------------------------------^^^^^     -->