W3C 验证器在本地主机上离线 ajax
W3C Validator offline on localhost by ajax
我曾经对 Brackets 文本编辑器进行编程,我已经安装了 W3C 验证器,但它在我在线时可以工作,但离线时不行。我尝试安装 https://validator.w3.org/docs/install.html 和 运行 localhost:8888 但括号的扩展仅通过 ajax (javascript) 连接。可以发送 ajax 喜欢到原始 W3C 网站吗?
W3C HTML 检查器(验证器)的维护者。是的,可以向当前检查器的本地实例发送 ajax 请求。要使用 Fetch 执行此操作并返回 JSON-formatted 结果:
var checkerUrl = "http://localhost:8888/?out=json"
fetch(document.location.href)
.then(function(currentDoc) { return currentDoc.text(); })
.then(function(htmlSource) {
fetch(
checkerUrl, {
method: "POST",
mode: "cors",
body: htmlSource,
headers: new Headers({ "Content-Type": "text/html;charset=utf-8" })
})
.then(function(checkerResponse) { return checkerResponse.json(); })
.then(function(jsonOutput) {
console.dir(jsonOutput.messages);
})
});
这显示了按照检查员期望的方式传送请求的基本步骤:
- 将文档作为 POST 的正文发送给检查器(在本例中为当前文档)
- 告诉检查器将其结果格式化为 JSON (
out=json
)
- 将
text/html;charset=utf-8
设为您发送给检查器的 POST 正文的媒体类型
检查器还支持 multipart/form-data
为其提供要检查的 HTML 源,但将源作为 POST 正文提供是首选(也是更好)的方式因为这样做。
如果您想使用 JQuery $.ajax(…)
而不是 fetch()
,这里有一个例子:
var checkerUrl = "http://localhost:8888/?out=json"
$.get(document.location.href,
function(htmlSource)
{
$.ajax({
url: checkerUrl,
type: "POST",
crossDomain: true,
data: htmlSource,
contentType: "text/html;charset=utf-8",
dataType: "json",
success: function (jsonOutput) {
console.dir(jsonOutput.messages);
}
});
});
并且如果您想使用 old-school XHR 而不是 fetch()
或 JQuery $.ajax(…)
但不清楚在这种情况下如何处理细节,让我知道,我也可以 post 举个例子。
在所有情况下,.messages
JSON 输出是一个对象数组,每个对象包含如下内容:
firstColumn: 1
lastColumn: 6
lastLine: 4
message: "Unclosed element “span”."
type: "error"
The documentation for the checker JSON format 提供了检查器发出的 JSON 的更多详细信息。
我曾经对 Brackets 文本编辑器进行编程,我已经安装了 W3C 验证器,但它在我在线时可以工作,但离线时不行。我尝试安装 https://validator.w3.org/docs/install.html 和 运行 localhost:8888 但括号的扩展仅通过 ajax (javascript) 连接。可以发送 ajax 喜欢到原始 W3C 网站吗?
W3C HTML 检查器(验证器)的维护者。是的,可以向当前检查器的本地实例发送 ajax 请求。要使用 Fetch 执行此操作并返回 JSON-formatted 结果:
var checkerUrl = "http://localhost:8888/?out=json"
fetch(document.location.href)
.then(function(currentDoc) { return currentDoc.text(); })
.then(function(htmlSource) {
fetch(
checkerUrl, {
method: "POST",
mode: "cors",
body: htmlSource,
headers: new Headers({ "Content-Type": "text/html;charset=utf-8" })
})
.then(function(checkerResponse) { return checkerResponse.json(); })
.then(function(jsonOutput) {
console.dir(jsonOutput.messages);
})
});
这显示了按照检查员期望的方式传送请求的基本步骤:
- 将文档作为 POST 的正文发送给检查器(在本例中为当前文档)
- 告诉检查器将其结果格式化为 JSON (
out=json
) - 将
text/html;charset=utf-8
设为您发送给检查器的 POST 正文的媒体类型
检查器还支持 multipart/form-data
为其提供要检查的 HTML 源,但将源作为 POST 正文提供是首选(也是更好)的方式因为这样做。
如果您想使用 JQuery $.ajax(…)
而不是 fetch()
,这里有一个例子:
var checkerUrl = "http://localhost:8888/?out=json"
$.get(document.location.href,
function(htmlSource)
{
$.ajax({
url: checkerUrl,
type: "POST",
crossDomain: true,
data: htmlSource,
contentType: "text/html;charset=utf-8",
dataType: "json",
success: function (jsonOutput) {
console.dir(jsonOutput.messages);
}
});
});
并且如果您想使用 old-school XHR 而不是 fetch()
或 JQuery $.ajax(…)
但不清楚在这种情况下如何处理细节,让我知道,我也可以 post 举个例子。
在所有情况下,.messages
JSON 输出是一个对象数组,每个对象包含如下内容:
firstColumn: 1
lastColumn: 6
lastLine: 4
message: "Unclosed element “span”."
type: "error"
The documentation for the checker JSON format 提供了检查器发出的 JSON 的更多详细信息。