1

我有一些使用jQuery框架编写的脚本。

var site = {
link: $('#site-link').html()

}

这将获取 div 中的 htmlsite-link并将其分配给link. 我后来保存link到数据库。

我的问题是我不想要 html,因为我认为这很危险,也许?

我努力了:

 link: $('#site-link').val()

...但这只是给了我一个空白值。

如何在没有任何标记的情况下获取 div 内的值?

4

6 回答 6

2

尝试这样做:

$('#site-link').text()

来自jQuery API 文档

获取匹配元素集中每个元素的组合文本内容,包括它们的后代,或设置匹配元素的文本内容。

于 2013-05-03T08:58:54.960 回答
2

像这样使用.text()jquery方法:

    var site = {
        link: $('#site-link').text()
    }

这是一个做什么和做什么.val()的例子:jsfiddle example.html().text()

于 2013-05-03T09:03:25.913 回答
1

使用方法_text()

获取匹配元素集中每个元素的组合文本内容,包括它们的后代,或设置匹配元素的文本内容。

于 2013-05-03T08:59:23.500 回答
1

使用 jQuery 的.text()函数来获取唯一的文本。

var site = {
link: $('#site-link').text()

}
于 2013-05-03T09:01:36.200 回答
0

为避免使用 html,您将需要使用 jquery 的 text() 方法。

var site = {
link: $('#site-link').text()

}

http://api.jquery.com/text/

于 2013-05-03T09:05:56.740 回答
0

如果您打算将结果存储在数据库中并且您担心 HTML,那么使用类似的东西.text()而不是.html()只是一种安全错觉。

永远不要相信来自客户端的任何东西!

客户端的一切都是可替换的,很容易被客户端劫持。例如,使用Tamper Data firefox 插件,即使是我妈妈也可以更改发送到服务器的数据。她可以发送任何东西来代替链接。像恶意脚本、整个网站等...

重要的是,在将“链接”保存到数据库之前,您必须在服务器端对其进行验证。您可以编写一个正则表达式来检查字符串是否是有效的 url,或者只是替换所有 html

在输出之前对其进行 html 编码也是一个好主意。这样,即使 html 进入您的数据库,在编码后它也只是一个无害的字符串(还有其他需要注意的东西,比如UTF-7,但网络是一个危险的地方)。

于 2013-05-03T09:16:32.000 回答