화면에서

<spring:message code="message.test" />

&lt;spring:message code="message.test" /&gt;

으로 소스에서 보였다.

난 이게

message.test 라는 메시지가

프로퍼티파일에 정의되지 않아 생기는 문제라고 생각했다..

하지만 그게 문제가 아니라

이 메시지가

<form:input  path="test" size="512" maxlength="512" cssStyle="width:70%" alt="<spring:message code='message.test' /> " title="<spring:message code='message.test' /> " cssClass="inputRead" readonly="true"/>

 

와 같은 형태로

form:input 안에 있어서 생긴문제다

이에 대한 해결책으로

 

 

출처 : http://stackoverflow.com/questions/11736150/how-to-make-fmtformatdate-work-for-forminput

 

와 같이

 

<fmt:formatDate value="transactions['${loopStatus.index}'].valueTransactionDate" 
               
type="date"
               
pattern="yyyy-MM-dd"
               
var="theFormattedDate" />
<form:input type="text" path="..." value="${theFormattedDate}"/>

 

별도로 변수를 선언해서 하는 방법이 있다..

하지만 솔직히 귀찮다는 점을 부정할수는 없는듯하다.

Posted by 삽지리
,

타일즈는 안써봤지만 개인적으로 실무에서 적용했을떄의 단점이다.

사이트매쉬는 html파싱을 통해서 화면을 구성하는면이 있는데

이때 내부컨텐츠에 잘못된 태그가 있으면 꼬여버리는 문제가 있다.

예를들어 에디터를 통해서 html태그를 비롯한 문서가 완성이 되어 들어갔다고 치자.

이떄 화면에서 이런 html태그안에 있는 head태그가 문서상단의 head에 편입되면서 특히 디자인이 문제가 생길수 있다.

사이트매쉬의 파싱기능은 이롭기도 하지만 에상치 못한 문제가 발생했을때에는 오히려 독으로 작용하는 것 같다.


장점으로는 보통의 include페이지들은 그자체로 완성된문서를 만들기 어렵다.

예를들어 jsp에서 body에 해당하는것을 인클루드 할경우

head에 대한 선언은 포기해야된다.

이말은 css선언을 포기한다는 말과 동일하다

만약 css에 대해 포기하기 싫어서 실행페이지에서 head나 footer를 삽입했을경우

레이아웃이 변하면 페이지를 다 수정해야되는 참사가 일어난다.

이것을 방지해줄수 있다.


만약 html를 사용하지 않는 컨텐츠 만으로 이루어진다는 보장이 있다면 나는 sitemesh를 적극 추천할 것이다.

아..

그런데.. 예전에 웹로직에서 한글이 꺠지는 문제가 있었던것 같다.. 흠냥..

Posted by 삽지리
,

현재 분석하는 프로젝트에서 하나의 테이블에 파일에 대한 정보들을 다 저장하고

그외의 정보는 매핑테이블을 별도로 두는 방법을 사용하였다.

이방법의 장점은 첨부파일에 관한액션이 하나의 키로 하나의 유틸에서 모두 컨트롤 가능하다는 점에 있다.

단점은 보안적으로 취약할수 있다는점..

하나의 키로만 다운로드 하다보니 이 유일키를 유니크하고 랜덤하게 하지 않으면 문제가 될수 있다.

또한 특정게시물이 보이는 사람한테만 다운로드 되게 한다든가 하는 보안설정이 애매하다.

이를 극복한다면 좋은 방법같다.

Posted by 삽지리
,

최근에 경험한 인증서가 오류나는 경우는 2가지 경우는 다음과 같다..

첫째 주소가 잘못되었다

둘째 인증서에 오류가 있다.

 

첫째는 www.test.com으로 인증서를 발부 받았는데

관련사이트인 temp.test.com에서 해당 인증서를 사용할 경우이다.

아무생각없이 인증서를 쓰면 이런현상이 일어난다.

인증서에는 이 인증서를 쓰는 사이트 정보도 들어가는데 그게 부적절하게 쓰여서 생긴문제..

 

둘째는 내외부망에서 동시에 쓸떄 경험했다.

어떤경우냐면 ROOT CA를 통해서 하위 인증서가 인증받는 경우

외부에서 쓸때는 인증서의 인증기관이 접속이 되서 아무문제 없는데

내부에서 특정 URL이나 포트만 열어봤을때

ROOT CA에 접속이 불가능 하여 인증서의 인증이 정상적으로 이루어 지지 않았을 경우다

이경우 인증서를 수동설치 하거나

그냥 포트랑 URL을 열어달라고 해야할듯하다.

근데 나도 뭘 열어야 되는지는 잘 몰라서 그냥 수동설치를 추천했다.

Posted by 삽지리
,

'프로그램 > 웹표준,CSS' 카테고리의 다른 글

문서타입에 관해서  (0) 2013.03.08
Posted by 삽지리
,

 

 

출처 : http://www.designshake.com/xe/?category=107&mid=css&sort_index=readed_count&order_type=asc&comment_srl=804&page=1&listStyle=webzine&document_srl=1215

 

찾아보게된 이유: ie8을 쓰는데 아무런 선언이 없는 곳에서 어디서는 호환성보기의 문서모드가 ie8 어디서는 ie7로 되는데 메타태그가 없이 그렇게 계속 바뀌길래 찾아봄

 

---------------

 

1. 문서타입

l문서타입

 문서에 형식을 정의하는 것을 DTD(Document Type Definition)
 DTD는 HTML 태그가 아니다.  DTD는 <html> tag 전에 기술
 DTD는 마크업 언어 Rule을 정의하고브라우저는 이에 맞춰 Rendering한다.

※ 브라우저가 올바로 Rendering할 수 있도록 항상 Doctype을 선언해라.


l (X)HTML Doctype Declarations

(X)HTML

Doctype 선언

Remarks

HTML 4.01 Strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

"http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHML 1.1에서는 Transitional, Frameset은 파기됨

XHTML Basic 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

XHTML 1.1의 축소형 모듈Set으로 모바일,PDA등에 적합

HTML5

<!DOCTYPE html>

Not standard yet

No need DTD file


l DTD 타입 (HTML 4.01, XHTML 1.0)

 HTML 4.0, 4.01 규격에 있는 3가지 DTD 타입
 XHTML 1.0은 HTML 4.01을 XML 기반으로 변경한 것으로 동일하게 3가지 DTD 타입 유지

DTD 타입

HTML 4.01

XHMTL 1.0

설명

Strict

HTML 4.01 Strict

XHTML 1.0 Strict

엄격한 규격(웹 표준에 준거)

. Presentational element 및 deprecated element 제외

. Frame 관련 element 제외

Transitional

HTML 4.01 Transitional

XHTML 1.0 Transitional

과도기의 규격(후방 호환성을 유지)

. Frame 관련 element 제외

Frameset

HTML 4.01 Frameset

XHTML 1.0 Frameset

Transitional  Frame 관련 element 포함


※ XHTML 1.1은 XHTML 1.0 Strict 규격 기반으로 Transitional, Frameset 타입이 파기됨


l Strict vs Transitional(Frameset)

 Strict 타입은 W3C가 스타일시트 사용 장려를 위해 단계적으로 사라질 표현(presentation)’에 관한 태그와 속성을 배제
 가능하다면 Strict 타입을 사용해야 하지만(should), 불가피할 경우 Transitional 타입을 사용할 수도 있다(may).

l Strict DTD 에서 달라지는 점

사라진 Elements

사라진 Attributes

바뀐 Content Model

<applet><embed><basefont><font><center><dir><menu><u><s><strike><frame><frameset><iframe><noframes>

align (, table관련<col><colgroup><tbody><td><tfoot><th><thead><tr>는 허용), language, background, bgcolor, border (<table>은 허용 ), height (<img><object>는 허용 ), hspacename( HTML 4.01 Strict은 허용, XHTML 1.0 Strict <form><img>는 허용안함 ), noshadenowraptarget, text, link, vlinkalinkvspacewidth (<img><object><table><col><colgroup>은 허용)

모든 텍스트와 이미지는 <body>내에 직접 사용 불가 à 반드시 <div><p> 등 block level element로 감싸야 한다.

. <form> 내에 <input>을 직접 사용 불가 à <div><p><fieldset>등으로 감싸야 한다.

. <blockquote> 내의 text들은 <div><pd>등의 block level element로 감싸야 한다.



2. 문서타입선언 및 언어 지정 (HTML 4.01)

HTML 4.01 지정 예

ex) 문서타입 : HTML 4.01 Transitional, 언어 한국어

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN“ "http://www.w3.org/TR/html4/loose.dtd">

<html lang=“ko”>

  <head> </head>

  <body> Contents </body>

</html>


l 문서 타입 지정

공개식별자와 시스템 식별자로 구성

• 공개 식별자   "-//W3C//DTD HTML 4.01 Transitional//EN“

• 시스템 식별자 "http://www.w3.org/TR/html4/loose.dtd"

 시스템 식별자 생략 가능


l 언어 지정

현재 문서의 언어 정보 제공. <html> 태그의 lang” attribute에 지정

• 브라우저검색엔진음성장치에서 참조

• “lang” 속성 값 ISO639 참고

 Character encoding(<meta> “Content-type”의 charset )과 혼돈하지 말것

   ( Character encoding은 여러 언어를 대표할 수 있다. )

 <meta> 의 “Content-Language” 선언은 문서의 언어해석 용도로 적절치 않고이용 빈도가 낮음



3. 문서타입선언 및 언어 지정 (XHTML)

l XHTML 1.0 지정 예

ex) 문서타입 : XHTML 1.0 Transitional, 언어 한국어


<?XML version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html 
xmlns="http://www.w3.org/1999/xhtmlxml:lang=“kolang=“ko">

<head> </head> 
<body> Contents </body> 
</html>



l XML 선언

XHTML은 XML 어플리케이션이므로 필수

• version : “1.0”

• encoding : 디폴트는 “UTF-8” 혹은 “UTF-16”.  생략할 수 있지만반드시 지정하도록 권장 (e.g. “UTF-8”, “EUC-KR”)


l 문서 타입 지정

공개식별자와 시스템 식별자로 구성

• 공개 식별자   "-//W3C//DTD XHTML 1.0 Transitional//EN“

• 시스템 식별자 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

 XHTML에서는 시스템 식별자 생략 불가

l Namespace 지정

<html> 태그의 xmlns” 속성으로 지정값은 http://www.w3.org/1999/xhtml"

l 언어 지정

• “xml:lang“ 속성 : XHTML 표준 지정 방식

• “lang” 속성 : XHTML 1.0에서 후방 호환성을 위해 지원. 

 XHTML 1.1에서는 lang” 속성 지원 안함


4. 브라우저 렌더링 모드

l 브라우저의 렌더링 모드(표시 모드)

l Doctype switching

• 브라우저가 어떤 모드를 선택하는가는 문서의 문서형 선언(XHTML의 경우)및 문서형 정의(DTD)에 의해 결정되며이러한 기능을 Doctype switching 이라 함

• 브라우저는 모드별 스타일시트를 가지고 있고선택된 모드별 스타일시트를 변경하고 이를 표시

 Doctype이 없는 오래된 문서의 경우 “Quirks mode”로 전환


l 렌더링 모드 종류

렌더링 모드

설명

비고

호환 모드

(Quirks)

웹 표준 이전 문서오래된 브라우저와의 호환성을 우선한 표시 모드

Win IE5, NS4의 경우 영구적으로 Quirks

Doctype이 없는 문서의 경우 Quirks

표준모드

(Strict or Standard)

W3C 사양서 등의 웹표준에 준거한 표시 모드

거의표준모드

(Almost Strict or Almost Standard)

기본적으로 웹표준에 준거하나후방 호환성을 유지한 모드.

Transitional/Frameset DTD를 위한 모드

<image> 태그의 경우, Strict Mode에서는 inline element이나, Almost Strict Mode에서는 예전과 같이 block element이다.


l Doctype switching에 따른 브라우저별 렌더링 모드

 ※ Q (Quirks mode), A (Almost Standard mode), S (Standards mode), N (Browser doesN’t interpret)

 ※ IE5.5(IE5.5), IE6(IE6/Opera7.0~7.03), IE7(IE7/Opera7.10~7.23), IE8,9(IE8/IE9/Opera7.5~8.54/Opera9.5~9.6),

    OP9(Opera9.0~9.20), FF,SF (Mozilla1.0.1/Mozilla1.1beta~/Firefox/Netscape7~/Safari0.9~/Opera10~/Chrome


l Doctype switching flow - General

http://hsivonen.iki.fi/doctype/html5-mode.pdf


5. IE8, IE9 렌더링 모드

l IE8, IE9 렌더링 모드

• IE8,IE9는 IE8 브라우저에서 부터 추가된 “Compatibility View”(호환성 보기기능에 의해,

일반적인 렌더링 모드(Quirks/Almost Standards/Standards)를 보다 세분화하여 정의

   • IE8의 경우 4가지 모드,  IE9의 경우 7가지 모드를 가짐

※ IE8,IE9는 “Compatibility View”(호환성 보기기능과 “X-UA-Compatible” 메타 정보 설정에 의해 렌더링 모드 선택 처리가 더욱 복잡해짐


l Compatibility View (호환성 보기)

마이크로소프트는IE8은 이전 버전의 IE를 기반으로 하는 일부 사이트에서 호환성 문제가 발생할 수도 있으므로이러한 문제점을 해결하기 위해 호환성 보기 기능을 제공” 한다고 함.



l “X-UA-Compatible” 메타 정보에 따른 렌더링 모드

• IE8, IE9 브라우저는 “Compatibility View” 모드 (브라우저,서버설정에 의한 관련,

<meta> 태그 또는 HTTP Header에 “X-UA-Compatible” 정보를 설정(문서에 의한하여 모드 선택이 가능하다.

• IE8, IE9 브라우저는 “X-UA-Compatible” 설정이 있을 경우, “Compatibility View” 설정보다 우선시 한다.

 “X-UA-Compatible” 설정의 우선 순위는 <meta> 태그 설정이 HTTP Header설정 보다 앞선다.


•  <meta> 태그 “X-UA-Compatible”  설정 예

<meta http-equiv="X-UA-Compatible" content="IE=5">

•  HTTP Header “X-UA-Compatible”  설정 예

X-UA-Compatible: IE=EmulateIE7


l “X-UA-Compatible” values

설명

“IE=5”

Quirks(IE5.5) 모드로 선택

“IE=7”

IE7 Standards 모드로 선택

“IE=EmulateIE7”

Doctype에 따라 Quirks(IE5.5) 또는 IE7 Standards 모드

“IE=EmulateIE8”

Doctype에 따라 Quirks(IE5.5) 또는 IE8 Almost Standards 또는 IE8 Standards 모드

“IE=EmulateIE9”

. IE8일 경우 à Doctype에 따라 Quirks(IE5.5) 또는 IE8 Almost Standards 또는 IE8 Standards 모드

. IE9일 경우 à Doctype에 따라 Quirks(IE5.5) 또는 IE9 Almost Standards 또는 IE9 Standards 모드

“IE=8”

Doctype에 따라 IE8 Almost Standards 또는 IE8 Standards 모드

“IE=9”

Doctype에 따라 IE9 Almost Standards 또는 IE9 Standards 모드

“IE=Edge”

. IE8일 경우 à Doctype에 따라 IE8 Almost Standards 또는 IE8 Standards 모드

. IE9일 경우 à Doctype에 따라 IE9 Almost Standards 또는 IE9 Standards 모드


 l IE8, IE9 모드 switching flow

  IE8모드 flow

   : http://hsivonen.iki.fi/doctype/ie8-mode.pdf

 ※ IE5.5 ~ IE9 모드 flow

   : http://hsivonen.iki.fi/doctype/ie-mode.pdf




6. 브라우저모드 선택

신규 웹사이트 구축 시 크로스브라우징 목표를 위한 브라우저 모드 선택을 위한 단계



 

'프로그램 > 웹표준,CSS' 카테고리의 다른 글

모바일 해상도  (0) 2013.03.08
Posted by 삽지리
,

출처 : http://msdn.microsoft.com/ko-kr/ie/cc405106.aspx#Ques_1

내가 중점적으로 생각하는 부분은 CreateElement 와 getYear의 변경사항

 

 

 

IE9에서 웹사이트가 잘 안보이거나 문제가 있으신가요?

호환성 가이드를 참고로 여러분의 웹사이트가 IE9에서 잘 동작할 수 있도록 개선해 보세요.

자주 묻는 질문

 

질문 1. 브라우저의 버전에 변경되면 호환성 관련한 부분이 가장 큰 이슈 사항입니다. 브라우저나 IE 버전에 대한 체크를 어떻게 해야 하나요?

질문 2. IE9을 통해 웹 사이트에 접속했더니 스크립트 오류가 발생합니다. 현재 자주 발생되는 오류는 어떤 것들이 있나요? 그리고 이런 경우 어떻게 대처해야 하나요?

질문 3. 로그인 버튼 클릭 시 오류 메시지가 발생합니다. 이런 경우 어떻게 대처해야 하나요?

질문 4. CreateElement() 함수를 사용하는 경우 에러가 발생합니다. 이런 경우 어떻게 대처해야 하나요?

질문 5. IE9과 Javascript Frameworks 들간의 호환성 문제가 발생합니다. 어떻게 해야 하나요?

질문 6. 자바스크립트를 통한 암호화 기능을 사용한 영역이 정상적으로 표시되지 않습니다. 이러한 경우 어떻게 대처해야 하나요?

질문 7. iframe 내 추가 정보가 표시되지 않습니다. 이러한 경우 어떻게 대처해야 하나요?

질문 8. 연도 계산 오류로 인해 장애가 발생합니다. 이러한 경우 어떻게 대처해야 하나요?

질문 9. IE9을 설치 후에 기존에 사용하는 프로그램에서 한글 폰트 깨지는 현상이 발생합니다. 이러한 경우 어떻게 대처해야 하나요?

질문 10. 테스트를 위해 IE9을 설치 한 후에 제거하고자 합니다. 설치된 IE9을 제거하는 방법이 있는지요?

질문 11. 이전 버전의 IE 문서모드에서 동작하기 위해 X-UA-Compatible META tag를 삽입하였으나 작동하지 않습니다. 어떻게 하면 될까요?

질문 12. 그림이나 문단이 원하는 위치에 표시되지 않습니다. 어떻게 하면 될까요?

질문 1: 브라우저의 버전에 변경되면 호환성 관련한 부분이 가장 큰 이슈 사항입니다. 브라우저나 IE 버전에 대한 체크를 어떻게 해야 하나요?

답변: 일반적으로 호환성 관련한 장애 중에서 가장 빈번하게 발생하는 에러의 원인 중 대부분이 버전 체크를 하지 않거나 UA String 값을 제대로 처리하지 못해 발생합니다.
웹 서버나 웹 페이지는 인터넷 브라우저로부터 종류와 버전 등의 정보를 받아서 각 브라우저와 버전에 맞는 페이지를 보여주게 합니다. 이 때 브라우저에서 제공하는 정보를 UA(User Agent) string이라고 합니다.
예를 들어 IE8까지는 “Mozilla/4”였던 UA String 값이 IE9에서는 “Mozilla/5”로 변경되었으므로
단순히 UA String 값이 ‘Mozilla/5’ 인지를 비교하여 Internet Explorer와 타 브라우저를 판단하여서는 안됩니다.
또한 “MSIE 9.0” 값을 얻어서 IE의 버전이 “9”임을 인식할 수 있습니다.

브라우저 및 IE 버전 판단 방법은 아래 샘플 코드를 참고 하시기 바랍니다.

function getInternetExplorerVersion() {
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
function checkVersion() {

var ver = getInternetExplorerVersion();
if (ver > -1)
msg = "You are using Internet Explorer " + ver;
else
msg = "You are not using Internet Explorer";
alert(msg);
}

또한 일부 ActiveX 관련해서 레지스트리의 값을 이용해서 IE의 버전을 체크하는 경우가 있는데, 이런 경우 UA String을 사용하면 이를 해결할 수 있습니다.

 

질문 2: IE9을 통해 웹 사이트에 접속했더니 스크립트 오류가 발생합니다. 현재 자주 발생되는 오류는 어떤 것들이 있나요? 그리고 이런 경우 어떻게 대처해야 하나요?

답변: IE9 내부적으로는 코드 네임 “Chakra”라고 이름 붙여진 새로운 JavaScript 엔진을 사용합니다. Chakra는 새로운 JavaScript 컴파일러를 포함하고 있는데, 이 컴파일러가 소스 코드를 컴파일하여 기계어로 바꿔주며, 새로운 인터프리터와 더불어 런타임과 라이브러리도 최적화하여 실행을 향상시켜 줍니다. 또한 스크립트 코드를 백그라운드에서 컴파일 하기 때문에 스크립트 코드의 변경 없이 멀티코어 머신에서 더 훌륭한 성능을 발휘합니다
자바스크립트 에러와 관련해서 현재까지 주로 발생되는 스크립트 문제 유형은 다음과 같습니다.
 로그인 실패
 버튼 클릭시 오류
 화면 안 보임
 렌더링 깨짐
이러한 오류에 대해서는 기존의 사용한 JavaScript 코드를 웹 표준을 맞게 수정해야 합니다. 웹 표준을 준수하지 않는 경우 IE8에서 잘 동작하더라도 에러가 발생될 수 있으니 이점 참고 하시기 바랍니다.

 

질문 3: 로그인 버튼 클릭 시 오류 메시지가 발생합니다. 이런 경우 어떻게 대처해야 하나요?

답변: 이전 버전까지는 getElementById()의 경우 document에서 해당 ID에 대한 unique한 html 요소를 찾아 주는데, IE의 경우 해당 요소의 ID와 Name 속성을 모두 찾을 수 있습니다.
그러나 IE9에서는 ID 속성만이 유효하게 되고, Name 속성을 사용하는 경우 null 값을 반환하게 됩니다.

<input type='checkbox' name='NxCheckKeyDefense' ... >
var objKeyDefense = document.getElementById("NxCheckKeyDefense") ;

이러한 문제점을 해결하기 위해서는 개체에 ID 속성을 부여해 주어야 합니다.

<input type='checkbox' name='NxCheckKeyDefense' id=“NxCheckKeyDefense’>
var objKeyDefense = document.getElementById("NxCheckKeyDefense") ;

 

질문 4: CreateElement() 함수를 사용하는 경우 에러가 발생합니다. 이런 경우 어떻게 대처해야 하나요?

답변: 새로운 객체를 만들기 위해 CreateElement() 함수를 사용하는 경우 IE9에서는 createElement() 함수의 인수에 “<>”가 포함되어서는 안됩니다.

createElement(‘<div id=“’+LOGIN.CL.CONTAINERID_INST+’” style=“display:none”></div>’);

이러한 문제를 해결하기 위해서는 createElement() 함수를 통해 DOM개체를 생성하고 setAttribute() 함수를 통해 속성을 부여하는 것이 올바른 방법입니다.

obj = document.createElement("div");
obj.setAttribute("id", LOGIN.CK.CONTAINERID);
obj.setAttribute("style", "display:none; position:absolute;");
document.body.appendChild(obj);

 

질문 5: IE9과 Javascript Frameworks 들간의 호환성 문제가 발생합니다. 어떻게 해야 하나요?

답변: IE9에서는 웹 표준에 따라 ECMAScript 5를 JavaScript 엔진으로 채택하여 최적화된 성능을 제공합니다. 이로 인한 변화에 따라 구버전의 Jquery, Prototype, Moo tools 와 같은 Javascript frameworks 와 호환성 문제가 발생하는 경우가 있습니다.
Framework 별로 개발사에서 IE9과의 호환성 문제를 해결하는 업데이트가 지속적으로 이루어지고 있으므로, 이러한 경우 해당 Framework를 최신 버전으로 업데이트 하는 것을 권장합니다.
이와 관련된 보다 자세한 사항은 아래 URL을 참고 하기 바랍니다.
http://blogs.msdn.com/b/ie/archive/2010/07/16/how-ie9-platform-preview-feedback-changed-the-javascript-standard.aspx

 

질문 6: 자바스크립트를 통한 암호화 기능을 사용한 영역이 정상적으로 표시되지 않습니다. 이러한 경우 어떻게 대처해야 하나요?

답변: IE9에서는 Jscript.Encode/Jscript.Decode를 지원하지 않으므로 <Script language=“Jscript.Encode”>와 같이 Jscript를 통해 스크립트를 암호화하는 경우 스크립트 파일이 처리되지 않습니다.

<Script language=“Jscirpt.Encode” src=“/commonEncode.js”>

IE9에서는 스크립트 암호화를 지원하지 않으므로 스크립트를 다음과 같이 수정해야 합니다.

<Script src=“/common.js” type=“text/javascript”>

 

질문 7: iframe 내 추가 정보가 표시되지 않습니다. 이러한 경우 어떻게 대처해야 하나요?

답변: IE8에선 자식 프레임은 부모 프레임과는 별도로 독립적인 버전을 지닐 수 있었지만, IE9에서는 이전 버전과 다른 DOM모델을 사용하기 때문에 부모 프레임과 자식 프레임이 독립적인 버전을 가지더라도 부모 프레임에 맞추어 동작하게 됩니다.

<iframe width="150" height="90" src="http://abc.com/event_call.htm?pid=15090@info" frameBorder="0" scrolling="no" vspace="0" hspace="0" bordercolor="#000000">

• 부모 프레임(IE9) : <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
• 자식 프레임(IE7) : <meta http-equiv="X-UA-Compatible" content="IE=IE=7"/>
이러한 경우 부모 프레임과 자식 프레임이 동일한 IE 버전에서 구동되도록 코드를 작성합니다.

질문 8: 연도 계산 오류로 인해 장애가 발생합니다. 이러한 경우 어떻게 대처해야 하나요?

답변: 일반적으로 연도 계산을 위해 getYear() 함수를 사용하게 되는데 자바스크립트 엔진이 변경됨에 따라 getYear() 함수의 리턴 값이 변경되었습니다.
기존 IE 버전에서는 0을 기준으로 하여 2010이 리턴 되었지만, IE9부터는 1900년도를 기준으로 (2010-1900=110) 110이 리턴 됩니다.

var c_year = today.getYear();
if(c_year-c_yy<19) alert("19세이하 미성년자는 회원가입이 불가능합니다.");

이러한 문제를 해결하기 위해서는 getYear() 함수를 getFullYear() 함수로 대체합니다.

var c_year = today.getFullYear();
if(c_year-c_yy<19) alert("19세이하 미성년자는 회원가입이 불가능합니다.");

 

질문 9: IE9을 설치 후에 기존에 사용하는 프로그램에서 한글 폰트 깨지는 현상이 발생합니다. 이러한 경우 어떻게 대처해야 하나요?

답변: 한글이 깨지는 이유는 유니코드(한글 모두 지원하는 방식)를 지원하지 않거나, 않았던
프로그램에서 발생합니다.
제어판의 언어설정을 이용하여 해당 증상의 해결을 할 수 있습니다.
A. [시작] -> [제어판] -> [키보드 또는 기타 입력 방법 변경]
B. [형식] 탭에서 형식(F) : 부분을 [영어(미국)]으로 변경 후 적용(A)
C. [위치] 탭에서 현재 위치(C) : 부분을 [미국]으로 변경 후 적용(A)
D. [키보드 및 언어] 탭에서 키보드 변경(C)... 선택
E. [일반탭] 기본 입력 언어(L) 부분 아래에서 영어(미국) -> US 선택 후 적용(A)
F. [관리자 옵션] 탭에서 설정 복사(O)
G. 현재 설정 복사: 모든 항목을 체크 후 [확인]
H. [관리자 옵션] 탭에서 시스템 로캘 변경(C)
I. 현재 시스템 로캘 부분(C): 영어(미국) 으로 선택 후 [확인]
J. [지금 다시 시작]을 눌러 시스템을 재 시작 합니다.
그리고 다시 아래와 같이 수행합니다.
A. [시작] -> [제어판] -> [키보드 또는 기타 입력 방법 변경]
B. [형식] 탭에서 형식(F): 한국어(대한민국)으로 변경 후 [적용]
C. [위치] 탭에서 현재 위치(C): 대한민국으로 변경 후 [적용]
D. [키보드 및 언어] 탭에서 키보드 변경(C)
E. [일반] 탭에서 한국어(대한민국) -> US 선택 후 [적용(A)]
F. [관리자 옵션] 탭에서 설정 복사(O)
G. 현재 설정 복사: 모든 항목을 체크 후 [확인]
H. [관리자 옵션] 탭에서 시스템 로캘 변경(C)
I. 현재 시스템 로캘 부분(C): [한국어(대한민국)] 으로 선택 후 [확인] 하시면 됩니다.

 

질문 10: 테스트를 위해 IE9을 설치 한 후에 제거하고자 합니다. 설치된 IE9을 제거하는 방법이 있는지요?

답변: 베타 버전을 설치한 후에 장애로 인해 사용이 불가능한 경우 IE9을 제거할 수 있습니다.
설치된 IE9을 제거하는 방법은 다음과 같습니다.
A. [시작] -> [제어판] -> [프로그램 기능]
B. 왼편 상단의 [설치된 업데이트 보기]
C. Windows Internet Explorer 9을 선택 후 [프로그램 제거] 선택
D. 팝업 창에서 [확인]
E. [지금 다시 시작]을 눌러 시스템을 재 시작 합니다.

질문 11: 이전 버전의 IE 문서모드에서 동작하기 위해 X-UA-Compatible META tag를 삽입하였으나 작동하지 않습니다. 어떻게 하면 될까요?

답변: IE 이전 버전과의 호환성 문제를 해결하기 위해 <meta http-equiv="X-UA-Compatible" content="IE=7" />와 같이 X-UA-Compatible META tag를 삽입하여 IE9을 IE 이전 버전의 문서모드로 동작하게 할 수 있습니다. 그러나 X-UA-Compatible META tag가 <Link>태그나 <Script>태그 이후에 삽입되어 있는 경우, IE9은 자동으로 IE9 표준모드로 동작하고 X-UA-Compatible META tag를 무시하게 되므로, 제작자가 의도한 문서 모드로 전환되지 않습니다.
X-UA-Compatible META tag는 <HEAD> 태그 바로 이후에 삽입하는 것을 권장합니다.

질문 12: 그림이나 문단이 원하는 위치에 표시되지 않습니다. 어떻게 하면 될까요?

답변: IE9 부터는 개체의 위치나 크기를 지정하는 Style 관련 속성(top, left, width, height 등)에 값을 지정할 때 반드시 단위(px, pt 등)를 함께 명시하여야 합니다. 그렇지 않은 경우 속성에 원하는 값이 지정되지 않습니다. layer.style.left = "0px”; 와 같이 단위(px, pt 등)를 포함한 값을 style 속성에 지정하여야 합니다.

Posted by 삽지리
,

초급때는 뭐하러 보냐고 생각했던것 들이 있다.

dtd와 정규식

하지만 실제 업무를 하면서 이것들은 전혀 무시하지 못하게 되었다

dtd는 어떤 문제가 생겼을때 그에 대한 확인을 할 수 있는 방법으로..

정규식은 생산성을 위한 방법으로 사용된다.

특히 정규식은 어렵지만 꼭 필요한 것 같다.

Posted by 삽지리
,

function openWinByName(uri,name,width,height,scroll,formId)
 {
  var left = (screen.width-width)/2;
  var top = (screen.height-height)/2;
  
  if(!formId)formId="tempPopupForm";  
  var frm = document.getElementById(formId);
  if(!frm){
   frm = document.createElement("form");
   frm.id = formId;
   document.body.insertBefore(frm,null);
  }
  newWin=window.open("",name,'width='+width+',height='+height+',left='+left+',top='+top+', scrollbars='+scroll+', toolbar=no');
  frm.action=uri;
  frm.target=name;  
  frm.method="get";  
  frm.submit();

     
  newWin.focus();
 }

 

위와 같이 uri을 받아서 팝업을 띄우는것을 구현했는데

uri에 다음과 같이 들어갔을때

/test/aaa.do?cmd=modify&a=aa&b=bb

같이 넣어서

action에 몽땅 처넣었을때

request의 파라미터로 아무것도 들어가지 않는다.

원인은

frm.method="get";  

이부분

form이 get일떄 action에 들어있는 파라미터 부분은 다 잘려나간다.

그래서

post로 바꾸어주었더니 아주 잘 된다.

 

Posted by 삽지리
,

import 하는데

The import  collides with another import statement

라는 에러 문구가 나오면서 추가하면 이클립스에서 에러가 뜬다

 

저 뜻은

예를 들어

 

import org.apache.log4j.Logger;

이런걸 추가했을때

에러가 뜬다면

Logger이라는 걸로 지칭될수 있는 클래스로 다른것이 선언되었다는 의미

예를 들면

import com.test.log.Logger;

가 이미 선언되어 있을 가능성이 있다..

Posted by 삽지리
,