如何從渲染好的html跟模板上反推出資料?

時間 2021-05-30 19:42:54

1樓:Shaopeng

唯一正確的方法是:去找做渲染的程式設計師,讓他給你渲染乙個attrbute

測試OR測試

所有其他在頁面上玩DOM的方法最終都會掛掉。

2樓:

最近做的東西有類似需求:從渲染結果中提取使用者輸入;從節點中提取節點樣式

在節點上定義serialize屬性,裡面定義了如何獲取該節點中的資料:

="itemHeight:!height"

>

serialize

="value:val"

type

="text value="

user-input

"/>div>

serialize

(node)==

="items:[s]"

>"data-default=""

>

"text:val"

type

="text"

value=""

data-default=""

>li>ul>serialize(node) == ,]}實現(依賴jQuery)

tryset =

(obj, path, v) ->

t =objparts =

path

.split

('.'

)last =

parts

.pop

()if

parts

.length

>0for

part

inpartsift

[part]==

undefinedt[

part]=

ifpart

.match

(/^\d+$/

)then

else

{};t = t[

part]t

[last]=

vobj

_serialize =

(element, attr) ->

json =

{}att = "[#

]"eles =

element

.find

(att)if

eles

.length==0

ifeles.is

(attr

)eles =

[eles

]else

return

null

eles

.each

(i,e) ->

isList =

false

ele = $(

e)key =

ele.

attr

('key')if

ele.is(

'option'

)then

ele =

ele.

parent

()values =

getValues

(ele

,attr

,key)$

.extend

(true

,json

,values[0

])return

return

json

getValues =

(eles, attr, key) ->

result =

forele

ineles

ele = $(

ele)

json =

{}desc =

ele.

attr

('desc'

)json.desc =

desc

ifdesc

fields =

ele.

attr

(attr

).split

('|'

)for

field

infields[k

,f]=

field

.split

':'if!f

f =kk =

keyif

keyif

typeof

ele[f]

is'function'

ifele.is

(':checkbox'

)v =

ifele.is

(':checked'

)then

true

else

false

else

v =ele[

f]()

elseiff

[0]==

'!'#get style on nodename = f.

substr(1

)v =

ele[0].

style

[name]||

ele.

css(

name

)else

ifm = f.

match

(/^\[([a-zA-Z]+)\]$/

)#用子節點中的s屬性序列化並返回乙個陣列v =

forchild

inele

.children

()c = $(

child

)continueifc

.find(m

[0]).length

<=0v

.push

(_serialize(c

,m[1

]))else

v =ele[0].

getAttribute(f

)orele.

attr(f

)orele.

data(f

)v =

trueifv

=='true'

v =falseifv

=='false'

tryset

(json,k

,v)result

.push

json

result

serialize =

(element, callback) ->_serialize

(element

,'serialize')

3樓:顧軼靈

給個很不嚴謹的實現,很簡單的 case 下可以跑過:http://

有很多情況下都會掛掉。比如兩個值相鄰的情況,無論如何都無法還原了。

上很差的高中和讀技校哪個選擇跟好?

呼呼醬 還是應該去高中啊 為啥這麼說哈 第一,這個過程是一步一步來的 第二,你在高中裡可能會有翻盤的機會!第三,你可能在高中遇到你一輩子都不會遇到的感情 友情愛情師生情 最後,我乙個沒有上過高中的朋友直接去了技校,也就是我們所指的五年制學生,他跟我講他沒上過高中一直很遺憾! 跨江大橋 上高中,因為再...

如何看待女孩嫁的好跟考的好?

小芋圓能行古道 考得好更重要 第一,只有考得好,在大學提公升思維和眼界,才能更好的判斷選擇乙個人對不對。第二,沒有什麼感情是絕對可靠的,不論男女都要有自己的本事和底氣。第三,進入更好的平台會接觸到更優秀的人,有更大的機率嫁的好。既然選擇高四就努力前行吧,祝幸福,自己給自己的幸福。 仙仙 嫁的好是建立...

如何從聽覺上理解聲音的相位?

CosmicSymphony 相位會顯著的改變基頻週期內的時域波形,但神奇的是,實驗證明人耳對相位一點也不敏感 我也不知道為什麼 例如我們在鋼琴上按乙個C和弦,我們不可能保證每次CEG都嚴格同時按下,但是只要CEG幾乎同時按響,我們聽起來就都一樣都是C和弦,儘管每次CEG的相位都不一樣 好問題!相位...