Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实现堆栈溢出式注释的思路_Javascript_Comments_Markdown_Wmd - Fatal编程技术网

Javascript 实现堆栈溢出式注释的思路

Javascript 实现堆栈溢出式注释的思路,javascript,comments,markdown,wmd,Javascript,Comments,Markdown,Wmd,我非常喜欢Stack Overflow评论UI,我正在考虑在我自己的网站上实现同样的功能。我查看了代码,这里的主要工具似乎是JQuery,JQuery起到了支持作用 WMD在客户端将标记转换为HTML。这很好,因为它有助于预览,但在将预览发送到服务器时,我遇到了一个挑战。如果出现验证错误(例如,用户在注释表单的其他部分输入了无效的电子邮件地址,或者他没有输入自己的姓名),那么服务器将通过重新显示表单来响应,并显示错误消息和预填充的表单字段。只是现在注释文本是HTML,而不是Markdown,因为

我非常喜欢Stack Overflow评论UI,我正在考虑在我自己的网站上实现同样的功能。我查看了代码,这里的主要工具似乎是JQuery,JQuery起到了支持作用

WMD在客户端将标记转换为HTML。这很好,因为它有助于预览,但在将预览发送到服务器时,我遇到了一个挑战。如果出现验证错误(例如,用户在注释表单的其他部分输入了无效的电子邮件地址,或者他没有输入自己的姓名),那么服务器将通过重新显示表单来响应,并显示错误消息和预填充的表单字段。只是现在注释文本是HTML,而不是Markdown,因为服务器甚至从未看到过Markdown。但我希望它是降价的,因为这是用户输入的内容

有什么想法吗

我考虑过各种想法:

  • 做一个服务器端测试。对这个想法没那么兴奋。似乎很难从标记转换为HTML再转换为标记,作为一个用户,当软件重新格式化我的文本/代码时,我总是感到恼火
  • 客户端验证(以增强服务器端验证,我当然会保留它)。这似乎是一个合理的方向,尽管目前我在评论表单上使用了reCAPTCHA,这意味着我至少需要将reCAPTCHA部分发布到服务器上
  • 丢失WMD并用于在服务器上将标记转换为HTML。我需要寻找一些其他机制来实现预览功能,我想保留它
理想情况下,除了HTML之外,还有一些方法可以获取文本的降价版本并将其提交给服务器,但我不是一个JavaScript专家,不知道这是否真的有可能


感谢您的建议。

我只是粗略地看了一下大规模杀伤性武器,但将文本区域提交给服务器似乎非常简单-事实上,如果文本区域是表单的一部分,我几乎看不出您可以避免它。据我所知,textarea包含标记,WMD将其转换为HTML以显示在页面的另一部分。只需在提交的表单中包含textarea,您就可以在服务器端看到它。

查看此问题:(右侧导航上的“相关”框是的!)。

我会将数据作为标记发送,然后在验证通过后让服务器将其转换为html。WMD有一个选项来指定它将发送到服务器的数据格式。加上

wmd_options = {
        //Markdown or HTML
        output: "Markdown"
    };

在调用wmd之前

是的,我们检索并存储用户在此处输入的“原始”文本,完全按照您描述的方式!是的,我让它提交文本区域很好…只是浏览器正在向服务器发送HTML,而不是降价。但从Chris的反应来看,WMD的一个选项是将其作为降价发送到服务器。唉,被RTFM咬了一口-汉克斯·克里斯。这正是我想要的。我想这次是被RTFR咬了。