技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

zblog如何避免pre標(biāo)簽內(nèi)容發(fā)布后換行符<br>被轉(zhuǎn)義成VBCrLf

作者:admin    時(shí)間:2015-12-30 23:15:40    瀏覽:

最近在zblog文章發(fā)布時(shí)pre的使用上遇到一點(diǎn)問(wèn)題,那就是pre標(biāo)簽的內(nèi)容在發(fā)布后換行符<br>會(huì)自動(dòng)轉(zhuǎn)義,即是把換行符“<br>”換成了“VBCrLf”,但是在內(nèi)容編輯的時(shí)候,并沒(méi)有把“VBCrLf”換成“<br>”,這樣就導(dǎo)致pre里的內(nèi)容不再換行,需再手動(dòng)換行,這就給文章編輯帶來(lái)很大的不便。

如何才能不讓pre標(biāo)簽里的內(nèi)容發(fā)布后轉(zhuǎn)義呢?我研究了一下zblog的源碼,發(fā)現(xiàn)可以通過(guò)修改源代碼來(lái)實(shí)現(xiàn)要求。

打開(kāi)文件

\function\c_system_event.asp

然后找到函數(shù)

Function PostArticle()

修改一下

Case "fckeditor"

里的代碼,在代碼

objArticle.Content=Request.Form("txaContent")

下面,添加如下代碼:

    'pre回車鍵轉(zhuǎn)義
    Dim myRe, mymatch, mymatchs, myhtm 
    myhtm = "" 
    set myRe = new RegExp  
    myre.IgnoreCase =True   
    myre.Global = True   
    myre.Pattern = "<pre([^>]*?)>([\s\S]*?)</pre>" 
    Set mymatchs = myre.Execute(objArticle.Content)  
    for each mymatch in mymatchs 
         myhtm = replace(mymatch.SubMatches(1),vbCrLf,"<br>")
         myhtm = replace(myhtm,vbLf,"<br>")
         objArticle.Content=Replace(objArticle.Content,mymatch.SubMatches(1),myhtm)
    next  
    set mymatchs = nothing

最終代碼如下:

'/////////////////////////////////////////////////////////////////////////////////////////
'*********************************************************
' 目的:    Post Article
'*********************************************************
Function PostArticle()

... ...

Case "fckeditor"
    objArticle.Content=Request.Form("txaContent")

    'pre回車鍵轉(zhuǎn)義
    Dim myRe, mymatch, mymatchs, myhtm 
    myhtm = "" 
    set myRe = new RegExp  
    myre.IgnoreCase =True   
    myre.Global = True   
    myre.Pattern = "<pre([^>]*?)>([\s\S]*?)</pre>" 
    Set mymatchs = myre.Execute(objArticle.Content)  
    for each mymatch in mymatchs 
         myhtm = replace(mymatch.SubMatches(1),vbCrLf,"<br>")
         myhtm = replace(myhtm,vbLf,"<br>")
         objArticle.Content=Replace(objArticle.Content,mymatch.SubMatches(1),myhtm)
    next  
    set mymatchs = nothing

    If objArticle.Intro="" Then
        s=objArticle.Content
    ... ...

通過(guò)這樣修改,文章發(fā)布后,pre標(biāo)簽里的內(nèi)容換行符“<br>”就不會(huì)被轉(zhuǎn)義成“VBCrLf”了。

標(biāo)簽: zblog  
相關(guān)文章
    x
    • 站長(zhǎng)推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */