2012-01-05 1 views
0

의 기능 I 성공적으로) stripTags를 사용하여 붙여 넣은 문자열에서 모든 HTML 스트립 코드의 비트를 (구현했습니다. 내 다음 목표는 흰색 플래그가있는 몇 개의 태그를 표시하여 .wrap()을 사용하여 '붙여 넣기'이벤트에서 무시되도록하여 함수를 보완하는 것입니다.이 stripTags 몇 가지 태그를 건너 뛰기() prototypejs

나는 프레임 워크로 prototype.js를 사용하고 천천히 프레임 워크와 자바 스크립트를 모두 학습의 성장통을 통해 노력하고 있습니다 만,이 문제는 장애물의 비트를 선물했다.

나는 조금 주위에 인터넷 검색과 위대한 두 솔루션의 모습을 발견,하지만 난 올바르게 구현하는 것 같지 않습니다했습니다. 찾을 솔루션 : http://perfectionkills.com/wrap-it-up/ (기능 제거 태그를 나타내는) 및 http://pastebin.com/xbymCFi9 (기능은 태그 유지할 수 있도록)

내가 꽤 많이 복사 후자에서 붙여 넣기. 내가 코드에서 'BR'을 끌어 경우 다음 정규식은 무시되고 모든 HTML이 제거됩니다. 내가 그것을 남겨두면 아무것도 붙여 넣기가되지 않습니다. 여기

내가 함께 재현 한 것입니다 (그리고 나는이 알아낼 수있는하지 않는 바보 느낌!).

String.prototype.stripTags = String.prototype.stripTags.wrap( 
    function(proceed, allowTags) { 
      if (allowTags) { 
      if (Object.isString(allowTags)) allowTags = $w(allowTags) 
      this.gsub(/(<\/?\s*)([^\s>]+)(\s[^>]*)?>/, function(match) { 
       if (allowTags.include(match[2].toLowerCase())) 
      return match[1] + match[2] + match[3] + '>' 
     }) 
     } else { 
     // proceed using the original function 
     return proceed(); 
    } 
    }); 


WysiHat.Commands.promptLinkSelection = function() { 
    if (this.linkSelected()) { 
    if (confirm("Remove link?")) 
     this.unlinkSelection(); 
    } else { 
    var value = prompt("Enter a URL", "http://www.alltrips.com/"); 
    if (value) 
     this.linkSelection(value); 
    } 
} 

document.on("dom:loaded", function() { 
    var editor = WysiHat.Editor.attach('event_desc'); 
    var toolbar = new WysiHat.Toolbar(editor); 

    editor.observe("paste", function(event) { 
    var el = $(this); 
    setTimeout(function() { 
     var pText = el.innerHTML.stripTags('br'); 
     //alert(pText); 
     $('event_desc_editor').update(pText); 
     $('event_desc').setValue(pText); 
    }, 0); 
}); 

메모를 (당신은 37 시그널 텍스트 편집기에서 WysiHat 코드를 인식 할 수 있습니다) : 당신은 경고 주석 볼 수 있습니다. ptext에주의를 기울이면 'undefined'가 반환됩니다.

답변

0

은 그래서 포기하고 정규식 솔루션으로 이동했습니다 :

el.innerHTML.replace(/<(?!\s*\/?\s*p\b)[^>]*>/gi,'') 
+0

내가 듣고 아직도 흥분 해요 있지만 의견/관찰/내 코딩 결정을 참아 왔지만! – abigwonderful