我正在寻找一个工具,它可以为我提供正确的生成源,包括由 AJAX 请求输入到 W3 验证器中所做的 DOM 更改。我尝试过以下方法:
-
网页开发者工具栏- 根据文档类型生成无效源(例如,它删除标签的自关闭部分)。丢失页面的文档类型部分。
-
Firebug- 修复源中的潜在缺陷(例如未封闭的标签)。还会丢失标签的 doctype 部分并注入本身是无效 HTML 的控制台。
- IE 开发工具栏 - 根据文档类型生成无效源(例如,它使所有标签都大写,违反 XHTML 规范)。
- 突出显示 + 查看选择源 - 通常很难获取整个页面,也不包括文档类型。
是否有任何程序或附加组件可以为我提供源代码的确切当前版本,而无需以某种方式修复或更改它?到目前为止,Firebug 似乎是最好的,但我担心它可能会修复我的一些错误。
Solution
事实证明,正如贾斯汀所解释的那样,我想要的东西没有确切的解决方案。最好的解决方案似乎是验证 Firebug 控制台内部的源代码,即使它会包含由 Firebug 引起的一些错误。我还要感谢 Forgotten Semicolon 解释了为什么“查看生成的源代码”与实际源代码不匹配。如果我可以标记 2 个最佳答案,我会的。
贾斯汀已经死定了。这里的关键点是 HTML 只是一种用于描述文档的语言。一旦浏览器读取到它,它消失了。开放标签、关闭标签和格式都由解析器处理然后走开。任何显示 HTML 的工具都是生成它基于文档的内容,因此它永远有效。
有一次我不得不向另一位网络开发人员解释这一点,他花了一段时间才接受。
您可以在任何 JavaScript 控制台中亲自尝试:
el = document.createElement('div');
el.innerHTML = "<p>Some text<P>More text";
el.innerHTML; // <p>Some text</p><p>More text</p>
未闭合的标签和大写标签名称消失了,因为该 HTML 在第二行之后被解析并丢弃。
从 JavaScript 修改文档的正确方法是document
方法 (createElement
, appendChild
, setAttribute
等),您会发现这些函数中都没有引用标签或 HTML 语法。如果您正在使用document.write
, innerHTML
或其他用于修改页面的 HTML 调用,验证它的唯一方法是捕获您放入其中的内容并单独验证该 HTML。
也就是说,获取文档的 HTML 表示形式的最简单方法是:
document.documentElement.innerHTML
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)