2013-05-03 65 views
1

我有一些使用jQuery框架編寫的腳本。jquery在沒有任何標記的div中獲取html

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

} 

這得到在div site-link的HTML,並將其分配給link。我稍後將link保存到數據庫。

我的問題是我不希望HTML,因爲我認爲這是危險的,也許?

我曾嘗試:

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

......但這只是給了我一個空值。

如何在沒有任何標記的情況下獲得div內的值?

回答

2

嘗試這樣做:

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

jQuery API Documentation

獲取集合中的匹配 元素的每個元素的合併文本內容,包括他們的後代,或設置文本匹配元素的內容爲 。

1

使用the text() method

獲取匹配元素集合中每個元素(包括它們的後代)的組合文本內容,或者設置匹配元素的文本內容。

1

使用jQuery的.text()函數來獲取唯一的文本。

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

} 
0

避免HTML,你將被要求使用jquery的text()方法。

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

} 

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

0

如果您計劃將結果存儲在數據庫中,你是關心HTML,比使用類似.text()而不是.html()只是安全的錯覺。

永遠不要相信任何來自客戶端的東西!

客戶端的一切都是可替換的,客戶端可以很容易地劫持。例如,以Tamper Data firefox插件爲例,即使我的母親也可以更改發送到服務器的數據。她可以發送任何內容來代替鏈接。像惡意腳本,整個網站等......

重要的是,在將「鏈接」保存到數據庫之前,您需要在服務器端對其進行驗證。你可以寫一個正則表達式來檢查一個string is a valid url,或者只是replace everything that is html

在輸出之前對html進行編碼也是一個好主意。這種方式即使html進入你的數據庫,編碼後它將只是一個無害的字符串(還有其他的東西要知道像UTF-7,但網絡是一個危險的地方)。

相關問題