novasera

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
  • total
  • today
  • yesterday
2009. 9. 18. 12:41 Programming(Web)/JAVASCRIPT



요약 : IE의 event를 firefox에서도 사용 하려면 event를 인자로 넘겨줘야 한다.




요약 : 또한 마우스 버튼 식별 값이 넷스케이프류와 IE가 서로 다르기에 따로 처리해줘야 한다.
         ( IE : event.button , 넷스 : e.which )

[추가]
이벤트를 발생시킨 객체를 가리키는 event.srcElement는

IE에서만 작동하고

FF, 크롬에선 event.target  (event는 전달받은 event를 사용) 라고 해야 된다.

posted by novasera
2009. 9. 16. 18:31 Programming(Web)/JAVASCRIPT
posted by novasera
현재 만든 사이트를 IE6 ,FF, 크롬에서 테스트중

상단 메인메뉴+마우스오버시 하위메뉴 visible 하는 부분의 하위메뉴가

IE6에서만 깜빡이는 현상이 있었다.

메뉴부분에 마우스오버하면 해당메뉴를 visible시키고 나머지는 안보이게 하는

함수를 호출하는데, 이 함수가 호출 될때마다 깜빡였다.

이에 대해 찾아보던중 역시나 IE6에서만 발생하는 현상이란 걸 알았다.

그리고 자료에서 제시한 해결 방법은 아래와 같다.


<!--[if IE 6]>
<style type="text/css">
html {
  filter: expression(document.execCommand("BackgroundImageCache", false, true));
}
</style>
<![endif]-->


같은 방법을 javascript로 처리하는

try { // IE only
    document.execCommand('BackgroundImageCache', false, true);
} catch(e) { }

와 같은 코드도 찾았지만

되도록 스크립트는 건들이지 않으려고 첫번째 css를 사용한 방법을 썼다.

IE6만을 위한 주석처리도 되어 있다.

이 코드를 우선 index페이지에 걸어봤더니 깜빡임이 사라졌다.

그리고 아직 코드를 넣지 않은 다른 페이지 (메인메뉴부분을 다른걸 사용하도록 한)

를 호출하니 그 페이지 까지 적용이 되었다.

아마 한번 실행되면 그 사이트 전체에 적용이 유지되는 것 같다.

그래서 이번엔 코드를 넣지 않은 사이트의 주소를 쳐서 index를 통해 들어가지 않고

direct로 들어가보니, 역시 코드 적용이 되지 않은 상태라 깜빡임이 발생했다.

그래서 index로 갔다 다시 해당 페이지로 돌아와보니 깜빡임이 사라졌다.

이것으로 내 생각엔 확실히 한번 실행되면 사이트 전역에 유지되는 것 같다.

그래도 방문자가 어느 페이지를 통해, 혹은 검색을 통해 들어올지 모르니.

css를 이용해 사이트 전역에 넣어주는게 좋을 것 같다.


참고 사이트

posted by novasera
2009. 9. 8. 15:00 Programming(Web)/JAVASCRIPT



적용사례 (요약)

...
if(tgtObj[i].id == objId)
{
tgtObj[i].className = "";
}
else
{
tgtObj[i].className = "dn";
}
...



posted by novasera
2009. 9. 4. 17:06 Programming(Web)/PHP

우선 javascript alert(); 에서 한글 출력이 깨지는 거는,

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />

요런 식으로 추가해줘서 해결.

하지만 모든 스크립트에 다 써줘야해서 근본적인 해결방법은 아닌것 같다.


두번째로 파일 다운로드 페이지에서 한글 파일명이 깨지는 현상.

IE6와 FF, 크롬 3개에서 테스트를 해보고 있는데,


1) UTF-8 한글 파일명을 DB에서 그대로 가져와 header로 출력하면, IE에서는 

"CA01AE71" 이런 형식으로 깨져서 나오고, FF에선 잘 나온다.

2) 해더 출력 할때 urlencode()를 써서 변환해보니

IE에서는 잘 나오지만, FF에서는 인코딩 된 문자 그대로 출력이 되며 깨진다.

3) iconv를 써서 UTF-8을 EUCKR이나 CP949로 변환하고 해더로 출력하니

IE와 FF, 크롬 모두 잘 출력이 된다. 하지만 좀 더 테스트를 해봐야 되겠다.

무엇보다 UTF-8 관련해서 이런 문제가 나올때마다 이런 저런 방법을 찾아 해결은

하고 있지만 근본적으로 왜 이런일들이 일어나는지 알려고 하지 않으면 매번

똑같은 식이 될 것 같아 더 공부가 필요하다.

posted by novasera

잘 정리된 자료이다.


사실 웹표준 가이드를 보면 다 나와 있는 내용들이다.
posted by novasera
어제 js 파일에 새 함수를 추가했는데도 못찼고 해서 우와와왁~~~ 하다가

js 파일 이름을 다른걸로 주고 하니 로드 되는걸 확인하고 임시파일 cache문제인 것을 확인.

관련 내용을 찾았다.

요약하자면,

1. 주소창에 about:config 를 입력한후, 고급기능 사용 동의를 클릭.
2.필터창에 browser.cache.check_doc_frequency 를 넣은후 값부분의 숫자(3)을 클릭.

3. 정수 값 입력창에 '1' 로 변경.


- 관련 값 내용.

0: 현 브라우저 세션이 끝날때까지 한번만 체크 (파폭을 종료하기 전까지는 되도록 cache에서만 읽음)
1: 페이지에 들를때 마다 매번 체크
2: 체크하지 않음. (한번 cache되고 나면 늘 cache를 씀)
3 (기본 설정): 자동으로 주기적으로 체크



출처 : http://www.webmini.net/49543

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

이거 공포다. 너무 엄격하다.

style="position:absolute;left:-999;

left 무시됐다고 firebug가 그래서 뭐지 하고 열심히 찾아보니

-999px 를 붙여야 되더라.

그리고 loadTable.style.left = "-999px"; 이렇게 ""도 잘 붙여줘야한다.

심지어 함수 호출해서 값만 넣으면 되는 부분도 이것 때문에

pop.style.top = top(obj) + obj.offsetHeight + "px";

이런식으로 해주니 통과된다.

그동안 내가 신경 안쓰고 대충 대충 한 탓이지만, 골치가 무지 아프다.

그리고 많은 공부가 될 것 같다.


posted by novasera
2009. 9. 3. 17:58 Programming(Web)/일반


특히나 PHP하면서 session_start(); 시키려고 하는 헤더 파일 있으면

이미 헤더 출력했다고 하며 warning 뜨고 한다.

UTF-8 신경쓸게 너무 많다.
posted by novasera
posted by novasera