我需要將資料庫中儲存的字串在html頁面上顯示,結果發現字串中的\n在頁面是沒有作用,也就是沒有換行。
[$sce:unsafe] attempting to use an unsafe value in a safe context.
這是因為angularjs為了系統安全著想,在web安全中xss(cross-site scripting,指令碼注入攻擊),它是在web應用程式中很典型的計算機安全漏洞。xss攻擊指的是通過對網頁注入可執行客戶端**且成功地被瀏覽器執行,來達到攻擊的目的,形成了一次有效xss攻擊,一旦攻擊成功,它可能會獲取到使用者的一些敏感資訊、改變使用者的體驗、誘導使用者等非法行為,有時xss攻擊還會合其他攻擊方式同時實施比如sql注入攻擊伺服器和資料庫、click劫持、相對鏈結劫持等實施釣魚,它帶來的危害是巨大的,也是web安全的頭號大敵。
所以在angular中預設是不相信新增的html內容,對於新增的html內容,首先必須利用$sce.trustashtml,告訴angular這是可信的html內容。否則你將會得到$sce:unsafe的異常錯誤。
module中
ng-bind-html="vuldetail"
這時,我們會發現angularjs竟然把\n轉換成了空格,所以我們還有在處理的文字中加入
text = vultop.vuldetail.replace(/\n/g, '
');$scope.vuldetail = $sce.trustashtml(text);
angularJS 顯示帶html的文字
一般我們寫 的時候需要渲染帶html結構的字串。在使用anjularjs時使用ng bind html就可以實現渲染。但是angularjs繫結的資料都會預設以文字的形式輸出,並不會去識別html標籤,這樣做主要是為了防止html標籤中的注入攻擊,提高了安全性。那麼該如何解決呢。通常使用這種方法 靜...
後端 n實現前端換行
後端傳入兩個 的n在前端會被解析成 n,前端實現換行方式 將 n替換成 n。用pre標籤輸出 將v html輸出 bz style white space pre line white space值 描述normal 預設 空白會被瀏覽器忽略。pre空白會被瀏覽器保留。其行為方式類似 html 中的...
element元件table表頭 n換行
在專案中,我們有時候需要像上面截圖這樣,表頭需要兩行的樣式,可能你們不需要,但是我用到了,這裡記錄一下,當是自己的乙個筆記。主要就是在需要換行的地方加上乙個 n,但是 你會發現加完並沒有效果 有效果估計是你走運 還得給.cell加樣式,這樣就perfect了 要注意的是,用element寫專案的話,...