1
나는 현재 다음과 같은 라이브러리를 사용하고

:입력 필드 자리 표시 자 속성 IE7 +

http://widgetulous.com/placeholderjs/

을 그리고 사용의 필요성을 감지하기 위해 다음 코드를 사용하여/그것을 필요로하는 분야에 적용 :

if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1 
    $ -> 
     Placeholder.init() 
     numPlaceHolders = $('input[placeholder]').length 
     window.setInterval(=> 
      if ($('input[placeholder]').length != numPlaceHolders) 
      numPlaceHolders = $('input[placeholder]').length 
      Placeholder.init() 
     , 1000) 

간격을 사용하는 이유는 요소가 런타임에 동적으로 생성된다는 것입니다 (저는 Angular JS를 사용합니다). 불행하게도,

그래서 나는 질문이 ... 즉, 지원은 필수이며, 자리 표시 자 속성은 지원되지 않습니다 :

1) 나는 Placeholder.init()를 모든 새로운 입력 필드에 적용되는 강제 수있는 방법 자리 표시 자 속성이 있습니까? 지속적인 루핑 간격을 피할 수있는 방법이 있습니까? 나는 DomChange 사건 (다양 함)에 대해 알고있다. 그러나 내가 아는 한 그들은 a) 더 이상 사용되지 않고 b) 즉 지원되지 않는다?

2) 브라우저 호환성을 확인한 다음 명시 적으로 요청하고 있습니다. 이 있는지 모르는

아직
if typeof(document.createElement('input').placeholder) == "undefined" 

if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1 

:

가 교체 : 나는 첫 번째 문제 (즉, 직접 검사보다는 호환성을) 해결 방법은 다음과

+0

이미 UA를 사용하고 있습니까? 이 모든 것이 jQuery로 훨씬 쉽습니다. 그게 선택의 여지가 있니? – isherwood

+0

jquery는 완벽하게 수용 가능한 옵션입니다. 실제로, 위의 코드 조각에서 jquery를 사용한다고 생각합니까? –

답변

0

입니다 이 문제를 해결하기위한 더 좋은 방법은 시간 초과입니다.