Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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 使用js从div获取原始HTML?_Javascript_Jquery - Fatal编程技术网

Javascript 使用js从div获取原始HTML?

Javascript 使用js从div获取原始HTML?,javascript,jquery,Javascript,Jquery,我正在开发一个网站,用户可以在这个网站上创建和保存自己的HTML表单。我没有在数据库中逐个插入表单元素和ID,而是考虑使用js(最好是jquery)获取表单的HTML(源代码格式)并通过mysql将其插入文本行 例如,我在div中有一个表单 <div class="new_form"> <form> Your Name: <input type="text" name="something" /> About You: <textarea name=ab

我正在开发一个网站,用户可以在这个网站上创建和保存自己的HTML表单。我没有在数据库中逐个插入表单元素和ID,而是考虑使用js(最好是jquery)获取表单的HTML(源代码格式)并通过mysql将其插入文本行

例如,我在div中有一个表单

<div class="new_form">
<form>
Your Name:
<input type="text" name="something" />
About You:
<textarea name=about_you></textarea>
</form>
</div>

你的名字:
关于你:

使用js是否可以在“new_form”div中获取原始HTML?

以获取div中的所有HTML

$(".new_form").html()
要只获取文本,它将是

$(".new_form").text()

您可能需要验证HTML,可能会对您有所帮助(它是用C语言编写的,但您可以理解)

是的,是的。您可以使用div的innerHTML属性。如下所示:

var myHTML = document.getElementById('new_form').innerHTML;

注意:当您如上所述使用
innerHTML
html()
时,您将无法获得输入的准确的原始html。您将获得web浏览器的想法,即序列化为HTML的当前文档对象应该是什么样子

浏览器在显示的确切格式上会有差异,如名称大小写、间距、属性顺序、哪些字符是
&
-转义字符以及属性引用。特别是IE,当应该引用的属性不存在时,它会给您提供无效的HTML。IE也会错误地在表单字段的
属性中输出当前值


您还应该了解允许用户提交任意HTML所涉及的跨站点脚本编写风险。如果要确保安全,您需要一些重型HTML“净化”。

谢谢!我尝试了,但是变量的值为null。但是
$(“.new\u form”).html()
workswhoops,您的div将“new\u form”作为类而不是id。getElementById仅在指定元素id时才起作用。作为旁注,我建议在后端对HTML进行一些验证/清理,以确保恶意用户没有向表单代码中添加任何恶意内容。这一点的安全重要性将取决于您的受众。是的,我肯定会这样做:)对于原始HTML,我认为安全性必须更强-/这可能是一个很好的开始,我提出了一个解决方案,但它是用C#,但是你可以从中获得一些想法,并转换为
php
。我应该做什么才能将数据属性与html一起获得?谢谢分享!我得做些改变。