2009-08-27 2 views
0

일반적으로 JavaScript 코드를 다른 브라우저 플랫폼으로 이식하는 것이 매우 어렵습니까?브라우저 간 호환성 문제로 인해 JavaScript 코드가 심각하게 손상됩니까?

+1

이것은 너무 애매한 질문입니다. 유일한 대답은 "아마도 어쩌면 그렇지 않을 수도 있습니다." –

+0

JavaScript는 실제로 경험이 없기 때문에 사실 모호합니다. 나는 그것이 단지 두려워 할 것이 있는지 평가하려고하고있다. –

+1

두려워하지 마십시오. –

답변

12

JavaScript는 모든 주요 (그래픽) 브라우저에서 실행되므로 "포트"하지 않아도됩니다.

크로스 브라우저 문제는 JS 개발자에게는 엄청난 고통이지만, jQuery와 같은 주요 차이점을 완화하는 라이브러리에 의해 고통이 완화되고 있습니다.

+0

글쎄, 늘어난 의미에서, 당신은 포트를해야합니다. 하나의 브라우저에서 작동하도록 작성한 내용은 기능이 매우 기본적인 것이 아닌 한 다른 브라우저에서 실행되지 않을 가능성이 높습니다. – geowa4

+0

플랫폼 Firefox에서 플랫폼 Internet Explorer로 이식한다는 의미였습니다. 하나의 OS에서 다른 OS로 포팅하는 것과 완전히 동일합니다. –

+1

아니요. 완전히 일치하지 않습니다. 일부 브라우저가 표준을 구현 한 방법에는 약간의 불일치가 있지만 대부분은 동일하고 해결할 수 있습니다. 당신은 두 개의 코드베이스 또는 다른 것을 유지할 필요가 없을 것입니다 ... – nickf

7

jQuery 또는 Prototype과 같은 라이브러리를 사용하는 경우에는 해당되지 않습니다.

하지만 그렇게하지 않으면 진짜 암캐가 될 수 있습니다. 모든 크로스 브라우저에 대해서는 quirksmode을 참조하십시오. 여기

은 몇 가지 일반적인 문제입니다

  • 이벤 팅
  • AJAX
  • idname
  • iframe
  • ... 내가 계속 할 수 있지만, PPK (쿼크 모드가)를 말한다 최고
+0

+1은 quirksmode를 언급합니다. jQuery/Prototype이 싫지만 일반적인 아이디어 (브라우저 독립성을위한 추상화)는 좋은 아이디어입니다. –

+0

그래, 모든 도서관을 열거하지 않을거야. 그건 영원히 계속 될거야 ... ExtJS, YUI, Dojo, Glow, SproutCore, ... – geowa4

0

자바 스크립트 shuold가 잘 돌아갔습니다 ... 불행히도, 다른 브라우저는 같은 이름에 대해 다른 이름을 가지고 있습니다. jquery.com에서 jQuery를 사용해보십시오.

1

아니요, 크로스 브라우저 문제는 JavaScript와 관련하여 매우 미약합니다. 가장 공통적 인 차이점은 IE는 className 메소드를 사용하여 getAttribute 함수 대신 클래스 속성을 변경하려고합니다. IE는 또한 스타일 블록을 머리에 입력하는 특수한 방법이 필요하지만 모호하지 않은 모던 브라우저에서는 크로스 브라우저 문제가 매우 드뭅니다.

+0

minor? 진지하게? 여러 브라우저와 각각의 여러 버전을 지원하는 평범한 j를 작성 했습니까? 하나의 xhr 객체를 만드는 것은 15 줄과 같은 것을 취할 것입니다. – geowa4

+1

예, 진지하게. 필자는 프레임 워크 없이도 JavaScript로 엄청난 응용 프로그램을 작성했습니다. 가장 큰 예외는 xmlHttpRequest 객체입니다. AJAX를 사용하지 않는다면 프로그래머는 브라우저 간 차이를 보지 않을 것입니다. 지금까지 완료 한 JavaScript 애플리케이션은 축소 된 후 75k입니다. –

+0

모달 창, .children [], .childNodes [], .appendData(), .innerHTML, .textContent/.innerText, ... - 절대로 나타나지 않기 때문에. – geowa4

1

jQuery와 같은 라이브러리의 경우 호환성 문제는 꽤 많은 역사가 있습니다. 그러나 그들은 IE6에서 두려운 두통을 일으킬 수있는 CSS 및 DOM 문제를 최소화하는 데 도움이되지 않습니다.

+0

CSS 상자 모델 문제는 JavaScript 문제가 아닙니다. –

+0

IE가 표준 준수에 접근함에 따라 그것들은 역사가되고 있습니다. – geowa4

+1

IE6이 역사가되면 역사가 될지도 모릅니다. Microsoft가 적어도 2012 년까지 수명 연장을 연장 했으므로 곧 그렇지 않을 것입니다. –

3

매우 간단한 JavaScript를 코딩하거나 JQuery 나 Mootools와 같은 확립 된 라이브러리를 사용하는 경우 IE6에서도 브라우저 호환성에 관해서는 전혀 문제가되지 않을 것입니다. 이러한 라이브러리는 기존 브라우저를 철저히 준수하도록 설계 되었기 때문입니다 .