한 가지 질문이 있습니다.
코드 사본은 다음과 같습니다.
<script language = "javaScript">
<script type = "text/javaScript">
<cript>
이 세 태그를 사용하는 것의 차이점은 무엇입니까?
나는 그것을 사용하고 있었지만, 그것을주의 깊게 생각하지 못했습니다. 여기에 자세히 설명하겠습니다.
주로 브라우저 지원 문제로 인해 일부 정보를 확인하십시오. 유형과 언어 속성을 모두 사용하여 <cript> 태그의 스크립트 유형을 지정할 수 있습니다. 언어 속성은 유형 속성의 사용을 옹호하는 HTML 및 XHTML 표준에서 비판을 받았습니다. 불행히도,이 두 속성의 값은 다릅니다.
언어 값 vbscript (Text/vbscript)를 볼 수 있으며, 포함 된 스크립트 코드가 Microsoft의 Visual Basic 스크립트로 작성되었음을 나타냅니다.
JavaScript를 사용하면 언어의 "JavaScript 1.1"값을 사용할 수 있으며, 포함 된 스크립트 문은 NetScape 3.0 이상으로 만 처리 할 수 있음을 나타냅니다. NetScape 2.0은 JavaScript 1.0 만 지원하며 "JavaScript 1.1"으로 표시된 스크립트를 처리 할 수 없습니다.
스크립팅 프로그램이 정상적으로 실행될 수 있도록하려면, IE에서만 지원되는 VBScript 및 스크립트 인코더 메커니즘을 의도적으로 사용하지 않는 한 스크립트 태그의 "유형"속성을 "JavaScript"로 설정해야하며 버려진 "Languange"속성을 설정하지 않아야합니다.
각 브라우저는 "유형"및 "언어"속성 자체를 모두 지원하지만 스크립트 언어 유형 인식 및 지원은 설정마다 다릅니다.
"유형"및 "언어"가 동시에 존재하는 경우, 모든 브라우저는 "type"속성 내에서 스크립트 유형을 우선적으로 인식합니다.
그중 IE 브라우저는 실제로 JScript 및 VBScript 스크립트 언어 레이블링 및 스크립트 인코더 암호화를 지원합니다.
Firefox Chrome Safari Opera는 "type"속성 값의 특정 식별에 대한 불일치가 일치하지 않습니다. Chrome Safari와 비교할 때 속성 값의 정확성 검증이 더 편안하며 Firefox가 가장 엄격합니다.
"언어"속성 값의 인식에 대한 공차를 비교할 때, Chrome Safari는 여전히 모든 브라우저 중에서 가장 느슨하며, 즉 가장 엄격하며 Firefox는 Opera와 동일합니다.
언어 인코딩 비교에서 IE만이 jscript.encoder 및 vbscript.encoder 유형 설정을 지원하고 Firefox Chrome Safari를 지원하지 않으며 Opera에서는이 속성 값이 기본 JavaScript 스크립팅 언어에만 출력 값을 갖습니다.
코드 사본은 다음과 같습니다.
<script language = "javaScript">
기능 a () {
B = "A";
}
에이();
경고 (b);
</스크립트>
위와 같이 함수의 변수를 선언하더라도 변수에는 문제가 있습니다. 전역 변수가됩니다.
Var로 선언하면 문제가 있습니다.
코드 사본은 다음과 같습니다.
<script language = "javaScript">
기능 a () {
var b = "a";
b 삭제 b;
경고 (b);
}
에이();
</스크립트>
결과는 여전히 나타납니다.
스크립팅 프로그램이 정상적으로 실행될 수 있도록하려면, IE에서만 지원되는 VBScript 및 스크립트 인코더 메커니즘을 의도적으로 사용하지 않는 한 스크립트 태그의 "유형"속성을 "JavaScript"로 설정해야하며 버려진 "Languange"속성을 설정하지 않아야합니다.