制作/查找 html5 验证器书签

2023-12-02

我想找到或制作一个书签,它将使用 W3C HTML 5 验证器验证当前查看的页面的 html 内容。

我找到了两个小书签,并试图让其中一个的行为有点像一个,又有点像另一个,但我不知道该怎么做。

克里斯·科伊尔有一个HTML5 验证书签效果很好,但它使用页面 URI,因此不适用于本地测试的站点:

javascript:(function(){%20function%20fixFileUrl(u)%20{%20var%20windows,u;%20windows%20=%20(navigator.platform.indexOf("Win")%20!=%20-1);%20%20/*%20chop%20off%20file:///,%20unescape%20each%20%hh,%20convert%20/%20to%20\%20and%20|%20to%20:%20*/%20%20u%20=%20u.substr(windows%20?%208%20:%207);%20u%20=%20unescape(u);%20if(windows)%20{%20u%20=%20u.replace(/\//g,"\");%20u%20=%20u.replace(/\|/g,":");%20}%20return%20u;%20}%20/*%20bookmarklet%20body%20*/%20var%20loc,fileloc;%20loc%20=%20document.location.href;%20if%20(loc.length%20>%209%20&&%20loc.substr(0,8)=="file:///")%20{%20fileloc%20=%20fixFileUrl(loc);%20if%20(prompt("Copy%20filename%20to%20clipboard,%20press%20enter,%20paste%20into%20validator%20form",%20fileloc)%20!=%20null)%20{%20document.location.href%20=%20"http://validator.w3.org/file-upload.html"%20}%20}%20else%20document.location.href%20=%20"http://validator.w3.org/check?uri="%20+%20escape(document.location.href);%20void(0);%20})();

我还发现了这个,它通过抓取当前页面的html来工作,但我不知道如何让它执行html5...代码中引用了doctype,我尝试将其更改为html5, html500 等,并完全删除它希望它能自动检测..但无济于事:

javascript:(function(){var h=document;var b=h.doctype;var e="<!DOCTYPE "+b.name.toLowerCase()+' PUBLIC "'+b.publicId+'" "'+b.systemId+'">\n';var g=h.documentElement.outerHTML;var f="http://validator.w3.org/check";var i={prefill_doctype:"html401",prefill:0,doctype:"inline",group:0,ss:1,st:1,outline:1,verbose:1,fragment:e+g};var a=h.createElement("form");a.setAttribute("method","post");a.setAttribute("target","_blank");a.setAttribute("action",f);for(var j in i){var c=h.createElement("input");c.setAttribute("type","hidden");c.setAttribute("name",j);c.setAttribute("value",i[j]);a.appendChild(c)}if(navigator.appCodeName=="Mozilla"){h.body.appendChild(a)}a.submit()})();

首先,您需要 HTML 文档的精确副本(包括 Doctype 等)。以此目的,我已经写了以下功能:

function DOMtoString(document_root) {
    var html = '',
        node = document_root.firstChild;
    while (node) {
        switch (node.nodeType) {
            case Node.ELEMENT_NODE:
                html += node.outerHTML;
            break;
            case Node.TEXT_NODE:
                html += node.nodeValue;
            break;
            case Node.CDATA_SECTION_NODE:
                html += '<![CDATA[' + node.nodeValue + ']]>';
            break;
            case Node.COMMENT_NODE:
                html += '<!--' + node.nodeValue + '-->';
            break;
            case Node.DOCUMENT_TYPE_NODE:
                // (X)HTML documents are identified by public identifiers
                html += "<!DOCTYPE "
                     + node.name
                     + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
                     + (!node.publicId && node.systemId ? ' SYSTEM' : '') 
                     + (node.systemId ? ' "' + node.systemId + '"' : '')
                     + '>\n';
            break;
        }
        node = node.nextSibling;
    }
    return html;
}

然后,必须创建并提交表单。检查表单提交后http://validator.w3.org/check,我创建了以下函数,它提交重要的键值对:

javascript:(function() {
    var html_to_validate = DOMtoString(document);

    /* Paste the DOMtoString function here */

    function append(key, value) {
        var input = document.createElement('textarea');
        input.name = key;
        input.value = value;
        form.appendChild(input);
    }
    var form = document.createElement('form');
    form.method = 'POST';
    form.action = 'http://validator.w3.org/check';
    form.enctype = 'multipart/form-data';         // Required for this validator
    form.target = '_blank';                       // Open in new tab
    append('fragment', html_to_validate);         // <-- Code to validate
    append('doctype', 'HTML5');                   // Validate as HTML 5
    append('group', '0');
    document.body.appendChild(form);
    form.submit();
})();

小书签

将前两个块复制到Google 的闭包编译器。不要忘记前缀javascript: again.

javascript:(function(){function c(a,b){var c=document.createElement("textarea");c.name=a;c.value=b;d.appendChild(c)}var e=function(a){for(var b="",a=a.firstChild;a;){switch(a.nodeType){case Node.ELEMENT_NODE:b+=a.outerHTML;break;case Node.TEXT_NODE:b+=a.nodeValue;break;case Node.CDATA_SECTION_NODE:b+="<![CDATA["+a.nodeValue+"]]\>";break;case Node.COMMENT_NODE:b+="<\!--"+a.nodeValue+"--\>";break;case Node.DOCUMENT_TYPE_NODE:b+="<!DOCTYPE "+a.name+(a.publicId?' PUBLIC "'+a.publicId+'"':"")+(!a.publicId&&a.systemId? " SYSTEM":"")+(a.systemId?' "'+a.systemId+'"':"")+">\n"}a=a.nextSibling}return b}(document),d=document.createElement("form");d.method="POST";d.action="http://validator.w3.org/check";d.enctype="multipart/form-data";d.target="_blank";c("fragment",e);c("doctype","HTML5");c("group","0");document.body.appendChild(d);d.submit()})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作/查找 html5 验证器书签 的相关文章

  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • Nodemailer:从未收到问候语

    当尝试使用 Nodemailer 在 Node 内发送电子邮件时 https github com nodemailer nodemailer https github com nodemailer nodemailer 调用sendMai
  • Typescript:如何在自定义过滤器中使用角度 $filter

    如何在自定义过滤器中使用 Angular filter 如何注入 filter依赖 module Filters export class CustomFilter public static Factory return function
  • 改进 D3 序列旭日示例

    This D3示例作为我的出发点 http bl ocks org kerryrodden 7090426 http bl ocks org kerryrodden 7090426 我想更改提供图表的数据 并且我做了以下新示例 http j
  • 如何在一段特定时间后在后台运行 ajax 调用? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在一段特定的时间后显示警报消息 您想继续吗 如果用户同意 则 ajax 调用必须在后台运行 否则取消 ajax 调用 那么请告诉我
  • TRACKER:错误TRK0005:无法找到:“CL.exe”。该系统找不到指定的文件

    我尝试在 Windows 8 上的 Node js 项目中执行以下命令 npm 安装 电子邮件受保护 cdn cgi l email protection 但我收到一个错误 我不知道如何处理 TRACKER 错误TRK0005 无法找到 C
  • 将 Google 电子表格解析为 Javascript 数组

    我有一个 Google 电子表格 https docs google com spreadsheets d e 2PACX 1vRc8Lx0N wf3f1xAAXkNFUqQjaWPFcde3YjK02gCBqGpUrULwHC6NC0sn
  • 如何在 div 容器内的元素之间留出空间

    我有一个弹性容器 它将由元素动态填充 容器没有固定宽度 I use max width max content 并且可以包含我想要的任意数量的元素 问题是我需要这些元素之间的间距 但不需要元素和容器之间左侧和右侧的间距 当然我可以用 ele
  • 哪些网络浏览器不支持 Javascript?以及如何识别客户端使用的是哪个浏览器?

    是否有不支持 javascript 的网络浏览器 以及如何确定客户端是否正在使用这些浏览器之一 或者客户端禁用了javascript 是否有不支持 javascript 的网络浏览器 当然 Lynx http en wikipedia or
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 如何生成 JavaScript 堆栈跟踪? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 关于如何以跨浏览器的方式在 javascript 中生成堆栈跟踪有什么建议吗 较新的浏览器 Chrome 和 Firefox 公开了一个允
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • Javascript:更改输入值时设置光标位置

    当您输入公式时 我试图在我的应用程序中重现类似于 Microsoft Excel Google Sheets 的用户体验 并且您可以使用不同的公式和变量来自动完成下拉菜单 为此 在验证自动完成功能后 我希望能够控制光标的位置 例如 如果我输
  • Angular 2访问组件内的ng-内容

    我怎样才能访问 content 来自组件类本身的组件 我想做这样的事情
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的

随机推荐

  • 带有全选复选框的可扩展列表视图:组项目单击和滚动错误

    我有一个 ExpandableListView 组名称旁边有一个复选框 展开时 子项目也带有复选框 假设我有 4 个组 有 50 个孩子 当展开一个组时 我单击全选复选框 一切正常 所有复选框都被选中 并在滚动时保持其状态 但是 如果我滚动
  • “ 远程服务器返回错误:(401) 未经授权”

    我正在尝试验证我的网址是否得到响应 换句话说 我正在尝试检查该网站的身份验证是否已成功 I used HTTP Request System Net WebRequest Create http example com HTTP Respo
  • 如何在 404 Tomcat 上重定向到外部网站

    我使用的是 spring 3 Tomcat 7 In web xml我已经定义了
  • TFS 构建定义未将 mvc 应用程序部署到 IIS

    我正在尝试使用 Visual Studio 的团队资源管理器和 TFS 创建构建定义以将 MVC 站点部署到 IIS 我遵循了名为 Team Foundation Server 2010 的持续部署 的 Pluralsight 教程 我从本
  • 使用 Java 从麦克风传输音频

    我正在开发一个项目 需要我将音频从客户端的麦克风流式传输到服务器 下面显示的代码是我写的 当我同时运行客户端和服务器代码时 音频不会实时传输 事实上 来自客户端的音频存储在缓冲区中 当我终止客户端代码的执行时 来自服务器缓冲区的音频将输出到
  • Java 不稳定的并发性

    好的 我刚刚读了这个问题你在 Java 中使用过 volatile 关键字吗 并且我使用易失性变量来停止循环 我也看过这个参考资料 http www javamex com tutorials synchronization volatil
  • 如何使用java流比较两个ArrayList并通过过滤器获取list1

    我有两个类型为 List 的列表 list1 和 list2 Term long sId int rowNum long psid String name List
  • 如何将 JSON 字符串转换为数组(PHP)?

    使用下面的代码来解码json categories json decode data categories categories gt data 我从哪里得到这个 categories id 1 name Utilities apps 89
  • 将两个单独的 wp 查询合并为一个查询以进行搜索

    目前 我的类别页面上有一个搜索栏 可以搜索产品标题 自定义帖子类型 或品牌分类 我可以让这两个独立工作 将任一参数传递给 WP Query 但是如果我尝试将它们数组合并在一起 则两者都不起作用 我所拥有的是 search sanitize
  • Base64 对文件进行编码并压缩

    我的目标是对文件进行编码并将其压缩到java中的文件夹中 我必须使用 Apache 的 Commons codec 库 我能够对其进行编码和压缩 并且工作正常 但是当我将其解码回原始形式时 看起来该文件尚未完全编码 看起来缺少一些零件 谁能
  • 中断命令 (ctrl+C) 不再在 macOS 上的 VS Code 1.78 终端中工作

    我打开的每个终端的顶部都是文本 bash 此 shell 中没有作业控制 我不记得在 VS Code 中更改过任何内容 但现在我无法再使用 control c 来停止终端中的内容 例如 npm run dev 和 node app js 在
  • 显示我的 nuget 的源代码

    我和我的团队构建了我们自己的框架 我们在许多项目中使用 我们曾经将框架的项目包含在所有其他项目中 但后来我们决定将框架放入 nuget 服务器上的 nuget 包主机中 以便我们可以在开发过程中更轻松地进行版本控制和传播框架 一切都工作正常
  • 将代码文件移动到项目中的另一个文件下

    我想将一个代码文件移到另一个相关文件组下 如下所示 如你所见 SingleObjectViewModel Commands cs隐藏在SingleObjectViewModel cs团体 在某些情况下它可能很有用 我已经创建了SingleD
  • 将 Spring Boot 应用程序部署到 AWS Beanstalk

    将 Spring Boot 项目 最好只是 jar 部署到 AWS Beanstalk 环境的最佳方式是什么 或者我应该将其转换为 WAR 并以这种方式部署 解决方案 基本上我所做的是这样的 创建了新类来告诉 Spring Boot 我的应
  • ASP.NET 中 GridView 中的内部网格线

    我有一个GridView在 ASP NET 2 0 中 我希望仅显示内部网格线 到目前为止 这是我的标记和 CSS
  • 离子启动画面未加载

    我已经检查并仔细检查了 Stack Overflow 以获得有关此问题的答案 但我真的找不到答案 我正在使用离子框架构建一个应用程序 虽然我以前从未遇到过这个问题 但由于某种原因 启动屏幕无法工作 我只是得到一个完全白色的屏幕 然后在加载初
  • iPhone中的应用程序间通信

    我只是想知道是否有任何方法可以从 iPhone 中的应用程序外部访问文档 例如 我希望能够将 Word 文档从邮件发送到我的应用程序 我怎样才能实现这个目标 提前致谢 这是一个博客 描述了 iOS 应用程序中应用程序间通信的工作原理 iOS
  • 在汇编中打印字符的三角形

    我正在开发这个练习 编写汇编程序 给定一个字符作为输入 输出一个大小为字符本身 5 x 5 的三角形 我有一个问题 因为当我输入一个字符时 这些字符没有形成三角形 而是打印了其他字符 我的输入 f 我的输出 期望的输出 f ff fff f
  • 使用 ImageMagick 将具有自定义字体的 SVG 转换为 PNG

    我使用 ImageMagick 将 SVG 转换为 PNG 一切都像魅力一样 直到我尝试使用 font face 添加自定义字体 然后在 SVG 文件中添加自定义字体 在 Batik 中这工作得很好 但现在在 ImageMagick 中我无
  • 制作/查找 html5 验证器书签

    我想找到或制作一个书签 它将使用 W3C HTML 5 验证器验证当前查看的页面的 html 内容 我找到了两个小书签 并试图让其中一个的行为有点像一个 又有点像另一个 但我不知道该怎么做 克里斯 科伊尔有一个HTML5 验证书签效果很好