javascript in onXXX handler escaping of & in parameter

javascript in onXXX handler escaping of & in parameter

本文关键字:in amp parameter escaping onXXX handler javascript of      更新时间:2023-09-26

我有一个带有 OnClick JavaScript 的<一个 href=">。这个JavaScript调用JS-lib中的一些函数(包含在页面头中)。在函数参数中转义 & 字符的正确方法(或是否需要)是什么?例:

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

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

或者它是否取决于文档类型(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">

<!DOCTYPE html>
<html lang="nl">

一般来说,最好的办法是首先远离onXyz属性处理程序,尤其是因为处理所涉及的各种文本解释层的复杂性。请改用新式事件处理。可是:

属性中的文本是HTML文本,当你在其中编写JavaScript代码时很容易忘记它。为了在 HTML 中表示与号,如您所指出的,我们使用&amp;

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

该属性的结果值将&f=a,因为 HTML 文本在读取时由浏览器的 HTML 解析器解释,并且相应地设置属性值。

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

不。 &在HTML4,XHTML和HTML5中&amp;