gpt4 book ai didi

javascript - 我的 textArea 中的 W3C Html 验证器

转载 作者:行者123 更新时间:2023-12-03 06:00:59 26 4
gpt4 key购买 nike

我正在开发一个网站,用户可以在文本区域中编写描述。此描述可能类似于包含所有 html 标签 ( <b></b><a href=''/> etc... ) 的 html 内容。

有时,用户会犯错误(例如写 <a href='"/> 或不关闭标签),当描述在我的网站中呈现时,它会破坏所有页面。

我正在寻找 JavaScript 库或其他工具来验证文本区域内容。与 jsfiddle 类似的东西,但在我的网站中。

谢谢

更新

为了使用我的应用程序,我简化了流程。这是代码

HTML

<div>
<div class="row">
<textarea id="idTextArea" style="width:300px; height:100px;"></textarea>
<button class="btn btn-default" id="idButton">Validate</button>
</div>
</div>

Javascript

<script type="text/javascript">
$("#idButton").click(function () {
var textToTest = "<!DOCTYPE html><html><head><title>Test</title></head><body>" + $("#idTextArea").val() + "</body></html>";

// emulate form post
var formData = new FormData();
formData.append('out', 'json');
formData.append('content', textToTest);

// make ajax call
$.ajax({
url: "http://html5.validator.nu/",
data: formData,
dataType: "json",
type: "POST",
processData: false,
contentType: false,
success: function (data) {
var text = "";
for(var i = 0; i < data.messages.length; i++)
{
var extract = data.messages[i].extract;
var firstColumn = data.messages[i].firstColumn;
var hiliteStart = data.messages[i].hiliteStart;
var hiliteLength = data.messages[i].hiliteLength;
var lastColumn = data.messages[i].lastColumn;
var lastLine = data.messages[i].lastLine;
var type = data.messages[i].type;
var message = data.messages[i].message;

text += "Type : " + type;
text += "Message : " + message;

}
if (text.length > 0) {
alert(text);
}
},
error: function () {
alert(arguments);
}
});
})

最佳答案

这可能需要一些修补,但就这样吧。使用W3C validator API

当用户在文本区域中写入描述时,使用ajax将此内容发送到后端脚本。在后端脚本中,将文本区域内容保存到可公开访问的 .html 文件(例如 textarea.html)。

然后,在保存文件后的同一脚本中,使用已保存内容的 .html 文件的 URL 向 W3C Validator API 发送 CURL 请求:

$filepath        = '/mycontent/textarea.html';
$current_content = file_get_contents($filepath);//if you need the old content for some reason
$new_content = $_GET['textarea_content'];

file_put_contents($new_content, $filepath);

// now use the validator
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://validator.w3.org/check?uri=http://www.myproject.com/mycontent/textarea.html/&output=json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = json_decode(curl_exec($ch), 1);

curl_close($ch);

然后解析 JSON(即 $output)以查看是否有错误。我亲自尝试过此 API,它确实返回一个 JSON 响应,其中包含在查询参数的 URI 中发现的所有错误。

关于javascript - 我的 textArea 中的 W3C Html 验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com