2010-01-05 4 views
1

html에서 dom 이벤트 속성 목록을 제거하고 싶습니까? 어떻게해야합니까? like :Hpricot을 사용하여 html에서 이벤트 속성을 제거하는 방법은 무엇입니까?

before = "<div onclick="abc" >abc</div>" 
after = clean_it(before) // after => "<div>abc</div>"  


DOM_EVENT_TO_BE_REMOVE = "onclick|ondblclick|onerror|onfocus|onkeydown" // i want to remove these events 

// i want to do it like this 
def clean_it(html) 
    doc = Hpricot(html)  
    doc.search(DOM_EVENT_TO_BE_REMOVE).remove_attribute(DOM_EVENT_TO_BE_REMOVE) 
    doc.to_s 
end 

감사합니다.

답변

2

사용 "remove_attr"예 : onclick을 ondblclick의 OnError onfocus 및 onKeyDown에]`수 있습니다 약간 청소기 w

DOM_EVENT_TO_BE_REMOVE = ["onclick", "ondblclick", "onerror", "onfocus", "onkeydown"] 
DOM_EVENT_TO_BE_REMOVE.each do |de| 
    doc.search("[@#{de}]").remove_attr(de) 
end 
+1

'DOM_EVENT_TO_BE_REMOVE은 = % : 문서에 대한 그래서

doc.search("[@onclick]").remove_attr("onclick") 

같은 일을 할 . – kejadlen

+0

대단히 감사합니다. – www

+0

doc.search ("* [@ onclick]")가 필요합니까? 나는 css 구문이 속성을 찾기 전에 요소 유형을 필요로한다고 생각한다. 와일드 카드를 사용하면 모든 요소를 ​​검색 할 수 있습니다. – Lukas

관련 문제