getElementsByTagNameNS 메소드란?
getElementsByTagNameNS() 는 getElementsByTagName()의 사촌 쯤 되는데,
NS 가 붙는 이유는 NameSpace를 사용하기 때문이다.
getElementsByTagName('TagName');
처럼 쓰지만.
getElementsByTagNameNS('NameSpace','TagName');
처럼 쓴다.
('NameSpace','TagName' 문자열에 *를 대신 사용하면 모든것을 지칭하게된다.)
네임 스페이스를 XML등에 사용할 때 표시법
위 소스는 RSS에서 사용되는 방법으로
aaa 라는 네임스페이스를 정의하는데
네임 스페이스를 포함한 태그
위 태그는 aaa라는 네임스페이스에 포함된 bbb라는 태그의 사용을 나태낸 것이다.
보통의 HTML에서는 저런 형식은 사용되지 않지만, XML(RSS는 XML을 이용한 것)에서는 꽤 자주사용되는 표현이다.
네임스페이스가 포함된 객체를 tagName로 가져오기
var bbb = document.getElementsByTagNameNS('http://test.com/aaa/','bbb');
이렇게 URI를 내타내서 사용하지만
var aaa = 'http://test.com/aaa/';
var bbb = document.getElementsByTagNameNS(aaa,'bbb');
로 사용하는 방법을 추천
여기서 문제가 발생하는데, IE에서는 getElementsByTagNameNS()가 지원되지 않는다.
(FF에서는 지원됨)
IE에서는 네임스페이스사용을 무시하고
var bbb = document.getElementsByTagName('aaa:bbb');
로 사용하면 된다.
여기서 또 문제점이 발생하는데, FF에서는 저런 방식으로 안된다.
FF에서는 네임스페이스를 지원하기 때문에 aaa는 태그가 아니라 네임스페이스로 처리되야한다.
그러므로
var bbb = document.getElementsByTagName('bbb');
모든 bbb태그를 가져오는 방식으로 쓰면 된다.
이건
var bbb = document.getElementsByTagNameNS('*','bbb');
와 같은 결과를 가져올 것이다.
호환성을 생각한 방법
(xmlDoc 은 AJAX로 가져온 XML의 Document이다. 그냥 HTML에서도의 Document와 성질이 같다.)
if(xmlDoc.getElementsByTagNameNS){ //getElementsByTagNameNS 를 지원할 때
var location = xmlDoc.getElementsByTagNameNS(yweather,'location');
}else if(xmlDoc.getElementsByTagName('yweather:location')){
//IE용 : 네임스페이스를 포함해서 태그를 검색할 수 있을 때
var location = xmlDoc.getElementsByTagName('yweather:location');
}else{ //그외
var location = xmlDoc.getElementsByTagName('location');
}
'인터넷정보' 카테고리의 다른 글
자바스크립에서 쿠기 설정/읽기/삭제 (0) | 2007.10.11 |
---|---|
PHP 파일 타입 알아보기 mime_content_type() (0) | 2007.10.11 |
GD 기본 사용법 (0) | 2007.10.11 |
인터넷 익스플로러 다운로드 제한 수 변경하는 방법 (0) | 2007.10.11 |
입력창에 바로 한글 입력하기 ime-mode (0) | 2007.10.11 |
금지태그 변환 (0) | 2007.10.11 |
select에 option동적으로 추가하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
$search = array();
for($i = 0,$m=count($anti_tag);$i<$m;$i++)
{
$search[] = "'(<)([\/\!]*?)({$anti_tag[$i]})([^<>]*?)(>)'si";
}
$replace = '<\\2\\3\\4>';
$return_str = preg_replace($search,$replace, $text);
-----------------------------------------------------------------------------------
-> <~~script~~><~~xmp~~> 같은 것을 사용하지 못하도록 바꿔서 출력한다.
'인터넷정보' 카테고리의 다른 글
PHP 파일 타입 알아보기 mime_content_type() (0) | 2007.10.11 |
---|---|
GD 기본 사용법 (0) | 2007.10.11 |
인터넷 익스플로러 다운로드 제한 수 변경하는 방법 (0) | 2007.10.11 |
입력창에 바로 한글 입력하기 ime-mode (0) | 2007.10.11 |
getElementsByTagNameNS 메소드란? (0) | 2007.10.11 |
select에 option동적으로 추가하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
select에 option동적으로 추가하기
numb=obj.length+1;
newOpt=document.createElement("OPTION");
newOpt.text=str;
newOpt.name=str;
newOpt.value=str;
obj.add(newOpt);
obj.length = numb;
'인터넷정보' 카테고리의 다른 글
GD 기본 사용법 (0) | 2007.10.11 |
---|---|
인터넷 익스플로러 다운로드 제한 수 변경하는 방법 (0) | 2007.10.11 |
입력창에 바로 한글 입력하기 ime-mode (0) | 2007.10.11 |
getElementsByTagNameNS 메소드란? (0) | 2007.10.11 |
금지태그 변환 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전
.drag { position: relative; cursor:move }
</style>
<script type="text/javascript">
///------------ 마우스로 객체 드래그
var bdown = false;
var x, y;
var sElem;
//------------------------------------- 숫자 NaN체커
function changeInt(num){ //수평선 님 추가
var temp = parseInt(num);
if(isNaN(temp)){
temp = 0;
}
return temp;
}
//------------------------------------ IE/FF 공용처리
function mlayer_down(e) {
evt = e||window.event;
stop_bubble(evt)
sElem = evt.target || evt.srcElement ;
if(sElem.className == "drag") {
bdown = true;
x = evt.clientX;
y = evt.clientY;
}
}
function mlayer_up() {
bdown = false;
}
function mlayer_move(e) {
if(bdown) {
evt = e||window.event;
stop_bubble(evt)
var distX = changeInt(evt.clientX) - x;
var distY = changeInt(evt.clientY) - y;
sElem.style.left =(changeInt(sElem.style.left) + distX)+'px';
sElem.style.top = (changeInt(sElem.style.top) + distY)+'px';
x = changeInt(evt.clientX);
y = changeInt(evt.clientY);
return false;
}
}
function stop_bubble(evt){
if(window.event){
window.event.returnValue = true;
}else{
evt.stopPropagation();
evt.preventDefault()
}
}
//------------------- 이벤트 등록
if (!document.all){
//FF도 될 수 있도록
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=mlayer_down;
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mlayer_move;
document.captureEvents(Event.MOUSEUP);
document.onmouseup = mlayer_up;
}
else{
document.onmousedown = mlayer_down;
document.onmousemove = mlayer_move;
document.onmouseup = mlayer_up;
}
</script>
---------------=-------------------
위 스크립트를 첨부하고
<img class='drag' src='xxxx.jpg'>
처럼 하면 됩니다.
그리고나서 이미지를 이동해보세요.
'인터넷정보' 카테고리의 다른 글
인터넷 익스플로러 다운로드 제한 수 변경하는 방법 (0) | 2007.10.11 |
---|---|
입력창에 바로 한글 입력하기 ime-mode (0) | 2007.10.11 |
getElementsByTagNameNS 메소드란? (0) | 2007.10.11 |
금지태그 변환 (0) | 2007.10.11 |
select에 option동적으로 추가하기 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기
function right(e) {
evt = e || event;
try{
if (document.all){
if(evt.button == 2 || evt.button == 3) {
stop_event(evt);
return false; }
}else {
if(evt.which == 3 || evt.which == 2) {
stop_event(evt);
return false; }
}
}catch(ex){
return false;
}
}
//--------------------------- - - 키보드 입력 막기
function processKey(e){
evt = e || event;
try{
stop_event(evt);
return false;
}catch(ex){
return false;
}
}
function stop_event(e){
evt = e || event;
if(window.event){
window.event.keyCode = 0;
window.event.cancelBubble = true;
window.event.returnValue = true;
}else{
evt.stopPropagation();
evt.preventDefault();
evt.initEvent;
}
}//----------------------------- 이벤트 등록
function dont_left_click(){
if(document.attachEvent){
document.attachEvent("onkeydown", processKey );
document.attachEvent("onmousedown", right );
}
else{
window.captureEvents(Event.MOUSEDOWN);
window.captureEvents(Event.ONKEYDOWN);
document.addEventListener("keydown", processKey , false);
document.addEventListener("mousedown", right , false);
}
}
'인터넷정보' 카테고리의 다른 글
입력창에 바로 한글 입력하기 ime-mode (0) | 2007.10.11 |
---|---|
getElementsByTagNameNS 메소드란? (0) | 2007.10.11 |
금지태그 변환 (0) | 2007.10.11 |
select에 option동적으로 추가하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
로딩 레이어 만들기
<script type="text/javascript">
var timer_loading=null;
function loading_st(){
var ct_left = (parseInt(window.screen.width)-450)/2;
var ct_top = (parseInt(window.screen.height))/3;
layer_str = "<div id='loading_layer' style='position:absolute; font-size:11pt; left:"+ct_left+"px; top:"+ct_top+"px; width:400px; padding:50px; text-align:center; vertical-align:middle; z-index:1000; font-weight: bold;'>로딩중입니다.</div>"
document.write(layer_str);
timer_loading = setTimeout('self.document.location!!.reload()',4000) //4초 동안 페이지 로딩이 완료 안되면 리로드 한다.);
if(window.attachEvent){
window.attachEvent('onload', loading_ed)
}else{
window.addEventListener('load', loading_ed, false)
}
}
function loading_ed(){
var ta =document.getElementById('loading_layer');
ta.style.display='none';
clearTimeout(timer_loading)
}
loading_st();
</script>
'인터넷정보' 카테고리의 다른 글
getElementsByTagNameNS 메소드란? (0) | 2007.10.11 |
---|---|
금지태그 변환 (0) | 2007.10.11 |
select에 option동적으로 추가하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용
<script>
var ta = document.scripts;
var save_buff = new String();
alert(ta.length);
for(i=0,m=ta.length;i<m;i++){
save_buff += '['+i+']\n'+ta.item(i).outerHTML;
}
document.write('<xmp>'+save_buff+'</'+'xmp>');
</script>
'인터넷정보' 카테고리의 다른 글
금지태그 변환 (0) | 2007.10.11 |
---|---|
select에 option동적으로 추가하기 (0) | 2007.10.11 |
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
정규식으로 오토링크 처리하기
$pattern = "/(http|https|ftp|mms):\/\/[0-9a-z-]+([\._0-9a-z-]+)+(:[0-9]{2,4})?\/?"; // domain+port
$pattern .= "([\.~_0-9a-z-]+\/?)*"; // sub roots
$pattern .= "(\S+\.[_0-9a-z]+)?"; // file & extension string
$pattern .= "(\?[_0-9a-z#%&;=\-\+]+)*"; // parameters
$pattern .= '/i';
$replacement = "\\0";
$contents = preg_replace($pattern, $replacement, $contents, -1);
return $contents;
}
'인터넷정보' 카테고리의 다른 글
select에 option동적으로 추가하기 (0) | 2007.10.11 |
---|---|
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
mime type 알아오기
$exp = strtolower($exp);
static $mime_type;
if(!is_array($mime_type)){
$mime_type = array();
$mime_type['dwg']='application/acad';
$mime_type['ccad']='application/clariscad';
$mime_type['dxf']='application/dxf';
$mime_type['mdb']='application/msaccess';
$mime_type['doc']='application/msword';
$mime_type['bin']='application/octet-stream';
$mime_type['pdf']='application/pdf';
$mime_type['ai']='application/postscript';
$mime_type['ps']='application/postscript';
$mime_type['eps']='application/postscript';
$mime_type['rtf']='application/rtf';
$mime_type['rtf']='application/rtf';
$mime_type['xls']='application/vnd.ms-excel';
$mime_type['ppt']='application/vnd.ms-powerpoint';
$mime_type['cdf']='application/x-cdf';
$mime_type['csh']='application/x-csh';
$mime_type['csh']='application/x-csh';
$mime_type['dvi']='application/x-dvi';
$mime_type['js']='application/x-javascript';
$mime_type['latex']='application/x-latex';
$mime_type['mif']='application/x-mif';
$mime_type['xls']='application/x-msexcel';
$mime_type['ppt']='application/x-mspowerpoint';
$mime_type['tcl']='application/x-tcl';
$mime_type['tex']='application/x-tex';
$mime_type['texinfo']='application/x-texinfo';
$mime_type['texi']='application/x-texinfo';
$mime_type['t']='application/x-troff';
$mime_type['tr']='application/x-troff';
$mime_type['roff']='application/x-troff';
$mime_type['man']='application/x-troff-man';
$mime_type['me']='application/x-troff-me';
$mime_type['ms']='application/x-troff-ms';
$mime_type['src']='application/x-wais-source';
$mime_type['zip']='application/zip';
$mime_type['au']='audio/basic';
$mime_type['snd']='audio/basic';
$mime_type['aif']='audio/x-aiff';
$mime_type['aiff']='audio/x-aiff';
$mime_type['aifc']='audio/x-aiff';
$mime_type['wav']='audio/x-wav';
$mime_type['gif']='image/gif';
$mime_type['ief']='image/ief';
$mime_type['jpeg']='image/jpeg';
$mime_type['jpg']='image/jpeg';
$mime_type['jpe']='image/jpeg';
$mime_type['tiff']='image/tiff';
$mime_type['tif']='image/tiff';
$mime_type['png']='image/png';
$mime_type['ras']='image/x-cmu-raster';
$mime_type['pnm']='image/x-portable-anymap';
$mime_type['pbm']='image/x-portable-bitmap';
$mime_type['pgm']='image/x-portable-graymap';
$mime_type['ppm']='image/x-portable-pixmap';
$mime_type['rgb']='image/x-rgb';
$mime_type['xbm']='image/x-xbitmap';
$mime_type['xpm']='image/x-xpixmap';
$mime_type['xwd']='image/x-xwindowdump';
$mime_type['gzip']='multipart/x-gzip';
$mime_type['zip']='multipart/x-zip';
$mime_type['css']='text/css';
$mime_type['html']='text/html';
$mime_type['htm']='text/html';
$mime_type['txt']='text/plain';
$mime_type['rtx']='text/richtext';
$mime_type['tsv']='text/tab-separated-values';
$mime_type['xml']='text/xml';
$mime_type['etx']='text/x-setext';
$mime_type['xsl']='text/xsl';
$mime_type['mpeg']='video/mpeg';
$mime_type['mpg']='video/mpeg';
$mime_type['mpe']='video/mpeg';
$mime_type['mov']='video/quicktime';
$mime_type['qt']='video/quicktime';
$mime_type['avi']='video/x-msvideo';
$mime_type['movie']='video/x-sgi-movie';
$mime_type['swf']='application/x-shockwave-flash';
}
if(isset($mime_type[$exp])){
return $mime_type[$exp] ;
}else{
return false;
}
}
'인터넷정보' 카테고리의 다른 글
JAVASCRIPT로 레이어(기타등등) 이동(드래그)하기, FF가능버전 (0) | 2007.10.11 |
---|---|
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수
<?
//GD를 이용한 이미지 리사이즈 함수
//$img_file : 원본파일
//$simg_name :리사이즈 파일 : 없을 경우 이미지를 직접출력합니다.
//*리사이즈와 워터 마크를 사용하지 않을 경우 직접 출력하는건 효율성이 떨어집니다.
//(직접 출력의 경우 header가 수정되기 때문에 다른 출력이 있으면 안됩니다.)
//$simg_width :리사이즈 너비
//$simg_height :리사이즈 높이
//* $simg_width와$simg_height 가 둘다 없을 경우 원본크기 그대로 작업합니다.
//$simg_type :리사이즈 파일타입 (1:gif , 2:jpg , 3:png) : 기본 gif
//$simg_str : 워터마크 문자열 (시작 위치:10px,20px ) 폰트는 gulim.ttc 지만, 없을 경우 기본 폰트로 시도한다.
function gd_image_resize($img_file,$simg_name='', $simg_width='', $simg_height='', $simg_type=1,$simg_str=''){
if(!is_file($img_file)){ return '원본 파일이 없습니다.'; }
//if(!$simg_name){ return '리사이즈 파일이름이 없습니다.'; } : 리사이즈 파일 이름이 없으면, 이미지로 그냥 출력합니다.
//if(!$simg_width && !$simg_height){ return '너비 와 높이 둘중 하나는 값이 있어야합니다'; } : 원본 크기로 작업합니다.
// GD 버젼체크
$gd = gd_info();
$gdver = substr(preg_replace("/[^0-9]/", "", $gd['GD Version']), 0, 1);
if(!$gdver) return "GD 버젼체크 실패거나 GD 버젼이 1 미만입니다.";
list($img_width, $img_height, $img_type, $img_attr) = getimagesize($img_file); //소스이미지파일 크기
if(!$simg_width && !$simg_height){
$simg_width = $img_width;
$simg_height = $img_height;
}else if(!$simg_width){
$simg_width = $img_width * ($simg_height/$img_height); //자동 비율생성 : 너비
}else if(!$simg_height){
$simg_height = $img_height * ($simg_width/$img_width); //자동 비율생성 : 높이
}
/*
지원 이미지 타입
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order),
9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM.
1,2,3 만 지원하도록한다.
*/
if($img_type<1 && $img_type > 3){
return "GIF,JPG,PNG 가 아닙니다.";
}
if($img_type==1){
$img_im = imagecreatefromgif($img_file); //원본 이미지: gif
}else if($img_type==2){
$img_im = imagecreatefromjpeg($img_file); //원본 이미지: jpg
}else if($img_type==3){
$img_im = imagecreatefrompng($img_file); //원본 이미지: png
}else{
return "지원되는 이미지형식(GIF,JPG,PNG)이 아닙니다.";
}
if($gdver >= 2){ //GD 2.XX : truecolor로 작업한다.
$simg_im = imagecreatetruecolor($simg_width, $simg_height);
imagecopyresampled($simg_im, $img_im, 0, 0, 0, 0, $simg_width, $simg_height,$img_width, $img_height); //이미지를 리사이즈한다.
}else{ //GD 1.xxx
$simg_im = imagecreate($simg_width, $simg_height);
imagecopyresized($simg_im, $img_im, 0, 0, 0, 0, $simg_width, $simg_height,$img_width, $img_height); //이미지를 리사이즈한다.
}
if($simg_str){
$color_000000 = imagecolorallocate($simg_im, 0, 0, 0); //색상 : 검정
$color_FFFFFF = imagecolorallocate($simg_im, 0xFF, 0xFF, 0xFF); //색상 : 흰색
$simg_str = iconv("EUC-KR","UTF-8",$simg_str); // UTF-8로 한글 변경
$font_file = dirname(dirname(__FILE__)).'/_m_comm/HYCYSM.TTF';
@imagettftext($simg_im, 10, 0, 6, 21, $color_000000, $font_file,$simg_str); //글자 적기
@imagettftext($simg_im, 10, 0, 5, 20, $color_FFFFFF, $font_file,$simg_str); //글자 적기
// @imagettftext($simg_im, 10, 0, 12, 22, $color_000000, "",$simg_str); //글자 적기
// @imagettftext($simg_im, 10, 0, 10, 20, $color_FFFFFF, "",$simg_str); //글자 적기
}
if($simg_name){
if($simg_type==1){
imagegif($simg_im,$simg_name); //원본 이미지: gif
}else if($simg_type==2){
imagejpeg($simg_im,$simg_name,80); //원본 이미지: jpg
}else if($simg_type==3){
imagepng($simg_im,$simg_name); //원본 이미지: png
}
}else{
Header("Content-Disposition: attachment; filename=".basename($img_file));
header("Content-Transfer-Encoding: binary");
if($simg_type==1){
header("Content-type: image/gif"); //이미지 타입에 맞도록 해더 구성
imagegif($simg_im); //원본 이미지: gif
}else if($simg_type==2){
header("Content-type: image/jpg"); //이미지 타입에 맞도록 해더 구성
imagejpeg($simg_im,'',80); //원본 이미지: jpg
}else if($simg_type==3){
header("Content-type: image/png"); //이미지 타입에 맞도록 해더 구성
imagepng($simg_im); //원본 이미지: png
}
}
// 메모리에 있는 그림 삭제
imagedestroy($img_im);
imagedestroy($simg_im);
return '이미지 리사이즈 완료';
}
?>
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=45236
'인터넷정보' 카테고리의 다른 글
키입력과 오른쪽 마우스 등 막기 (0) | 2007.10.11 |
---|---|
로딩 레이어 만들기 (0) | 2007.10.11 |
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정
header("Content-Type: text/html;charset=EUC-KR");
'인터넷정보' 카테고리의 다른 글
로딩 레이어 만들기 (0) | 2007.10.11 |
---|---|
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용)
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용)
소스
<!-- 웹에서 오브젝트를 선언해서 사용해도 된다.
<OBJECT id='dlgHelper' CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px">
</OBJECT>
-->
<script>
var dlgHelper;
function init(){
if (dlgHelper==null)
{
dlgHelper = document.createElement("OBJECT");
dlgHelper.classid = "clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b";
dlgHelper.style.width = 0;
dlgHelper.style.height = 0;
document.body.appendChild(dlgHelper);
}
}
function inttowebcolor(num){
var str = num.toString(16);
str = "#"+"000000".substring(0,6-str.length)+str;
return str;
}
function color_pick(this_s){
init();
inputed_color = this_s.style.backgroundColor;
if (!inputed_color)
var selected_color = dlgHelper.ChooseColorDlg();
else
var selected_color = dlgHelper.ChooseColorDlg(inputed_color);
var str = inttowebcolor(selected_color);
this_s.style.backgroundColor = str;
}
</script>
<input type='button' onclick='color_pick(this)' style="width:200px; height:100px; " value='색상'>
'인터넷정보' 카테고리의 다른 글
현재 페이지의 스크립트 내용 알아오기 IE전용 (0) | 2007.10.11 |
---|---|
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
var color_arr = new Array('00','11','22','33','44','55','66','77','88','99','AA','BB','CC','DD','EE','FF');
function c_table_rgb(){
document.write("<table class='c_table' cellspacing='0' cellpadding='0'>");
for(i=0,m=color_arr.length;i<m;i++){
var rgb = '#'+color_arr[i].toString()+color_arr[i].toString()+color_arr[i].toString();
document.write("<tr><td style='background-color:"+rgb+";' onclick='c_sel(this)' onmouseover='c_up(this)'></td></tr>");
}
document.write("</table>");
}
function c_table_(ru,gu,bu){
document.write("<table class='c_table' cellspacing='0' cellpadding='0'>");
for(j=0,m=color_arr.length;j<m;j++){
document.write('<tr>');
if(ru) var r = color_arr[j].toString();
if(gu) var g = color_arr[j].toString();
if(bu) var b = color_arr[j].toString();
for(i=0,m=color_arr.length;i<m;i++){
if(!ru) var r = color_arr[i].toString();
if(!gu) var g = color_arr[i].toString();
if(!bu) var b = color_arr[i].toString();
var rgb = '#'+r+g+b;
document.write("<td style='background-color:"+rgb+";' onclick='c_sel(this)' onmouseover='c_up(this)'></td>");
}
document.write('</tr>');
}
document.write("</table>");
}
function c_up(this_s){
result = this_s.style.backgroundColor;
color_picker.txt_color.style.backgroundColor = result;
color_picker.txt_color.value =result;
}
function c_sel(this_s){
result = this_s.style.backgroundColor;
color_picker.btn_color.style.backgroundColor = result;
color_picker.btn_color.value =result;
}
</script>
<style type="text/css">
.c_table{border-style:none;}
.c_table td{border-style:solid; border-width:0px; overflow:hidden; width:5px; height:5px; font-size:0px; cursor:crosshair; }
</style>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><script> c_table_rgb(); </script></td>
<td ><script> c_table_(1,0,0); </script></td>
<td ><script> c_table_(0,1,0); </script></td>
<td ><script> c_table_(0,0,1); </script></td>
</tr>
<tr>
<td colspan="4"><form name="color_picker" style="padding:0; margin:0; "><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="50%"><label style="border-style:none; font-size:12px; ">색 : </label>
<input name="txt_color" type="text" id="txt_color" style="border-style:solid; border-width:1px; font-size:12px; " readonly="true" size="7" maxlength="0"></td><td align="right"><label style="border-style:none; font-size:12px; ">선택 : </label>
<input name="btn_color" type="button" id="btn_color2" style="border-style:outset; font-size:12px; background-color:#FFFFFF; " value="#FFFFFF">
</td>
</tr><td></td></table><label style="border-style:none; font-size:12px; "></label>
<label style="border-style:none; font-size:12px; "></label>
</form>
</td>
</tr>
</table>
'인터넷정보' 카테고리의 다른 글
정규식으로 오토링크 처리하기 (0) | 2007.10.11 |
---|---|
mime type 알아오기 (0) | 2007.10.11 |
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
devedit (아주 다양항 기능. 상당히 괜찮은......)
홈페이지 http://www.interspire.com/devedit/
데모 http://www.interspire.com/devedit/demo.php
CHEditor (쓸만한데 설치 하는데 좀 막히는 부분이 있다.)
홈페이지 http://www.chcode.com
데모 http://www.chcode.com/cheditor/demo.html
WebEditor V 1.53 Build 41 (마우스 오른쪽으로 테이블, 이미지등 편집 가능. 쓸만하다.)
홈페이지 http://mytnt.co.kr/
데모 http://mytnt.dnip.net:8080/develop/?p=preview (늦게 뜨면 아래 링크 사용)
데모 http://web.gso.co.kr/~sea88/bbs/WebEditor/example.html
basic (쓸만함 HTMLarea와 비슷하다.)
홈페이지 http://www.basic.pe.kr/
데모 http://www.basic.pe.kr/bbs/zboard.php?id=basic_board (자게 글쓰기 클릭)
데모 http://web.gso.co.kr/~sea88/bbs/zboard.php?id=community (우리집 게시판중에 수정해서 쓰고있음. 글쓰기 클릭)
FCKeditor (걍 그저 그렇습니다. 근데 글자 색은 바꿀수 없는거야?)
홈페이지 http://sourceforge.net/projects/fckeditor
데모 : http://www.fredck.com/FCKeditor/Demo/
HTMLarea (가장 많이 쓰는것 같습니다. 쓸만함. htmlarea 3.0 버전은 모질라에서도 익스랑 똑같이 작동 한답니다.)
홈페이지 http://sourceforge.net/projects/itools-htmlarea
데모 : http://www.interactivetools.com/products/htmlarea/index.html#demo
SPAW (보기는 좋지만...엄청 늦게 떠서 탈....약간 비추.)
홈페이지 http://sourceforge.net/projects/spaw/
데모 : http://www.solmetra.com/spaw/demo/demo.php
hypertextare (버튼이 묵직한것이...아마고쳐 써야 할듯...에러의 압박. 비추비추)
홈페이지 http://sourceforge.net/projects/hypertextarea
데모 : http://www.muckum.de/ht
RichText-editor (그저 그렇다. 비추비추비추)
홈페니지 http://sourceforge.net/projects/richtext
데모 : http://richtext.sourceforge.net
aynHTML (소스 보기 하니 컬러로 나옵띠다. ;; 따운 받는데가 어딘지...)
홈페이지 http://sourceforge.net/projects/aynhtml
데모 : http://www.aine.be/aynhtml
web-based WYSIWYG HTML editor (아직 안써봤는데 스샷으로 대신...)
스샷,다운 http://www.unica.edu/uicfreesoft/wysiwyg_web_edit/info_wysiwyg_web_edit_eng.html
RichTextBox™ v2.0
홈페이지 http://richtextbox.com/Default.aspx
데모 http://richtextbox.com/richtextbox/demos/0/
XsDhtmlEdito (이건 안써봐서 모름)
홈페이지 http://sourceforge.net/projects/xsdheditor
데모 없음
bpEditor (이것도 안써봤는데....)
홈페이지 http://sourceforge.net/projects/bpeditor
'인터넷정보' 카테고리의 다른 글
mime type 알아오기 (0) | 2007.10.11 |
---|---|
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML)
MSIE
--------------------------------------------------------------
var rng = document.selection.createRange();
rng.pasteHTML(sHTML);
--------------------------------------------------------------
FireFox
--------------------------------------------------------------
var rng = window.getSelection().getRangeAt(0);
rng.deleteContents();
rng.insertNode(rng.createContextualFragment(sHTML));
--------------------------------------------------------------
위지윅에디터에서 사용되는 구문인데
MSIE에서는 HTML붙이는게 있습니다.
하지만, FireFox에서는 그런 함수가 없어서 삭제 후 삽입하는 방식이며,
createContextualFragment() 이건, gecko에서만 지원되는 거라고합니다.
'인터넷정보' 카테고리의 다른 글
GD를 이용한 이미지 리사이즈, 워터마크 함수 (0) | 2007.10.11 |
---|---|
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
{
switch (where){
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this)
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
{
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
}
//--------------- 에뮬레이션 끝
'인터넷정보' 카테고리의 다른 글
항상 한글로 나오도록 해더설정 (0) | 2007.10.11 |
---|---|
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정
// 과거의 날짜
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// 항상 변경됨
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-reval!!idate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
?>
'인터넷정보' 카테고리의 다른 글
IE의 dlgHelper 을 사용한 컬러뽑기(IE전용) (0) | 2007.10.11 |
---|---|
컬러 픽커 테이블 (0) | 2007.10.11 |
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
innerText 대신 사용
obj.innerText -> obj.childNodes[0].nodeVal!ue
innerText,outerHTML,outerText는 IE말고는 다른 브라우져에서 지원하지 않는다.
DOM으로 접근해서 값을 가져오는/설정하는 방식을 사용하면 된다
'인터넷정보' 카테고리의 다른 글
컬러 픽커 테이블 (0) | 2007.10.11 |
---|---|
위즈윅 에디터들 (0) | 2007.10.11 |
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합)
http://www.blueb.co.kr/SRC/javascript/package/dhtmlxTree/
Often there is a need to show a hierachically structured data.
Our dhtmlxTree (DHTML extensions Tree) lets to do this in an easy and most comfortable way - in any browser! Having such features, as dynamical loading of items from a XML stream allows it to handle large amounts of data. Drag-and-drop makes it possible to drag items not just within one tree, but between different trees. Try by yourself now:
|
|
Double-click on folder label or click on [+] plus to expand subitems.
Supported Browsers:Features:Licensing |
Download:Examples:Documentation:(including CF custom tag doc) |
Code Sample
var tree1 = null; function doOnLoad(){ tree1=new dhtmlXTreeObject('treebox1',"100%","100%",0); tree1.setImagePath("imgs/"); tree1.enableDragAndDrop(true); tree1.loadXML("tree.xml") }
'인터넷정보' 카테고리의 다른 글
위즈윅 에디터들 (0) | 2007.10.11 |
---|---|
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기Internet Explorer 기반 웹 애플리케이션을 Mozilla 기반 브라우저에서 작동시키는 방법 |
난이도 : 초급 Doron Rosenberg, 소프트웨어 엔지니어, IBM 2005 년 7 월 26 일 Internet Explorer 기반 웹 애플리케이션을 Mozilla 로 접근했을 때 어려움을 느껴본 적이 있었는가? 이 글에서 오픈 소스 Mozilla 기반 브라우저로 애플리케이션을 마이그레이션 할 때 발생하는 일반적인 문제들을 다루고자 한다. 우선 기본적인 크로스 브라우저 개발 기술을 배우고 나서 Mozilla와 Internet Explorer의 차이를 극복하는 전략을 모색한다. Netscape가 Mozilla 브라우저를 시작했을 때, W3C 표준을 지원하겠다는 의식적인 결정을 내렸다. 결과적으로, Mozilla는 Netscape Navigator 4.x와 Microsoft Internet Explorer 레거시 코드와 완벽하게 하위 호환이 되지 않는다. 예를 들어, Mozilla는 또한 XMLHttpRequest와 리치 텍스트 편집 같은 비표준 기술에 대해서도 설명하겠다. W3C 비슷한 것도 그 당시 존재하지 않았기 때문에 Mozilla가 지원하게 되었다.
웹 표준이 존재하더라도 브라우저 마다 다르게 작동한다. (사실, 같은 브라우저도 플랫폼에 따라 다르게 작동한다.) Internet Explorer 같은 많은 브라우저들 역시 W3C 이전의 API를 지원하고, W3C 표준 API 에 대한 지원까지 결코 확장하지 않았다. Mozilla와 Internet Explorer의 차이점을 설명하기에 앞서, 나중에 새로운 브라우저 지원을 추가할 수 있도록 웹 애플리케이션을 확장하는 몇 가지 기본적인 방법을 설명하겠다. 브라우저마다 같은 기능에 다른 API를 사용하기 때문에 브라우저들을 차별화 시키는
위 코드는 확장할 수 없기 때문에 새로운 브라우저를 지원하려면 웹 애플리케이션의 처음부터 끝까지 이러한 블록을 업데이트 해야 한다. 코드를 변경하지 않고 새로운 브라우저를 지원하는 가장 쉬운 방법은 기능을 추상화 하는 것이다. 즉, 여러개의
위 코드는 여전히 브라우저 스니핑(browser sniffing) 이나 사용자가 어떤 브라우저를 사용하고 있는지 탐지해야 하는 이슈가 있다. 브라우저 스니핑은 일반적으로 사용자에이전트를 이용하여 아래와 같은 형태로 수행된다.
사용자 에이전트를 사용하여 브라우저를 스니핑 하면, 사용중인 브라우저에 대한 상세한 정보가 나온다. 새로운 브라우저 버전이 나타날 때 사용자 에이전트가 실수할 수 있는 코드, 코드 변경이 필요한 것이 무엇인지를 알 수 있다. 브라우저 유형이 문제가 되지 않는다면(아마도 웹 애플리케이션에 접근을 못하도록 비 지원 브라우저를 막았을 수도 있다.) 브라우저 기능에 따라 스니핑 하는 것이 더 낫다. 아래와 같이 하는 것 보다는 JavaScript에 필요한 기능을 테스트하여 이를 수행하는 것이 더 낫다.
다음과 같이 하라.
이렇게 하면 그 메소드를 지원하는 다른 브라우저(Opera 또는 Safari)가 변경 없이도 작동할 수 있다. 하지만 사용자 에이전트 스니핑은 정확성이 중요한 문제가 될 때 사용하는 것이 좋다. 브라우저가 웹 애플리케이션의 버전 요구 사항들을 충족시키는지, 버그를 해결하는지 등을 확인할 때 사용하는 것이 좋다. JavaScript는 인라인 조건문도 허용한다. 이것으로 코드 읽기가 쉬워진다.
엘리먼트를 검색하려면 다음을 사용하라.
Mozilla와 Internet Explorer의 차이점 우선, HTML이 Mozilla와 Internet Explorer 사이에서 작동하는 방법의 차이를 설명하겠다. 레거시 브라우저들은 툴팁을 HTML에 도입했다. 이들을 링크상에 보여주고 툴팁의 콘텐트로서 HTML 마크업은 여러 엔터티들을 포함할 수 있다. 이는 W3 표준 위원회가 정의한 것이다. 숫자 레퍼런스 또는 문자 레퍼런스를 통해 엔터티들을 참조할 수 있다. 예를 들어, Internet Explorer 같은 몇몇 브라우저들은 끝에 있는
Mozilla는 W3C 스팩에 반하더라도 위
이 코드는 Mozilla에서 작동하지 않는다. W3 표준에 부합하지 않기 때문이다. 언제나 정확한 형식 ( Document Object Model (DOM)은 문서 엘리먼트를 포함하고 있는 트리 구조이다. W3C가 표준화 한 JavaScript API를 통해 이를 조작할 수 있다. 하지만 W3C 표준화 이전에 Netscape 4와 Internet Explorer 4는 비슷한 API를 구현했다. Mozilla는 W3C 표준으로 할 수 없다면 기존 API만 구현한다. 크로스 브라우저 방식을 따르는 엘리먼트 레퍼런스를 검색하려면 Internet Explorer 5.5+와 Mozilla에서 작동하고, DOM Level 1 스팩의 일부인 Mozilla는 W3C DOM Level 1 메소드는 표 1에 나오는 DOM Level 1 메소드들은 한 엘리먼트를 특정 위치로 옮기고, 이것의 가시성(메뉴, 애니메이션)을 토글링하는데 사용된다. Netscape 4는 표 1. 엘리먼트 접근에 사용되는 메소드
Mozilla는 JavaScript를 통해 DOM 트리를 횡단하는 W3C DOM API를 지원한다. (표 2 참조). 이 API는 문서의 각 노드에 존재하고, 어떤 방향으로든 트리를 이동시킬 수 있다. Internet Explorer 역시 이 API를 지원하지만, DOM 트리를 이동시키는 경우에는 레거시 API를 지원한다. 표 2. DOM 트래버스에 사용되는 메소드
Internet Explorer는 비표준 쿼크를 갖고 있고, 이들 API 중 많은 것들이 새로운 라인 문자로 만들어진 빈 공간 텍스트 노드를 지나친다. Mozilla는 이들을 지나치지 않기 때문에 이들 노드들을 구별해야 한다. 모든 노드들은 노드 유형을 지정하는
Mozilla는 콘텐트를 DOM에 동적으로 추가할 때 Internet Explorer에는 여러 콘텐트 조작 메소드가 있다. 이들은 비 표준이고 Mozilla에서는 지원되지 않는다. 값 검색하기, 텍스트 삽입하기, 표 3. Mozilla가 콘텐트 조작에 사용하는 메소드
퍼포먼스 때문에 기존 문서의 DOM에서 작업하기 보다는 메모리에 문서를 만들 수 있다. DOM Level 1 Core는 정상적인 문서의 인터페이스 하위 세트를 포함하고 있는 경량의 문서인 문서 조각을 도입했다. 예를 들어, Mozilla는 Internet Explorer 구현의 문서 조각은 W3C 표준에 순응하지 않고 정상 문서를 리턴한다. Most Mozilla와 Internet Explorer의 차이점은 보통 JavaScript 때문에 생긴다. 하지만 이 문제는 브라우저가 DOM 후크(hook) 같은 JavaScript를 노출하는 API에 있다. 이 두 개의 브라우저는 몇 개의 핵심 차이점을 갖고 있다. 문제는 타이밍과 관련이 있다. 유일한 JavaScript execution differences 브라우저 마다 JavaScript를 다르게 실행한다. 예를 들어, 아래 코드는
하지만 이것도 보장할 수 없다. 모든 엘리먼트가 확실히 존재한다는 것을 보장하려면
이와 같은 타이밍 관련 문제들 역시 하드웨어와 관련이 있다. 느린 시스템은 빠른 시스템이 숨기는 버그를 찾아낼 수 있다. 한 가지 예는
이 코드의 문제는 JavaScript는
이 페이지는 스트릭트 모드에 있기 때문에 Mozilla의 파서는 먼저
Mozilla는 Internet Explorer에서 만든 애플리케이션에서 발견된 JavaScript 관련 문제들을 디버깅하는 여러 방법들을 제공한다. 첫 번째 툴은 빌트인 JavaScript 콘솔이다. (그림 1). 여기에서 에러와 경고가 기록된다. Mozilla에서 Tools -> Web Development -> JavaScript Console로, Firefox(Mozilla의 스탠드얼론 브라우저 제품)에서는 Tools -> JavaScript Console로 간다. 그림 1. JavaScript 콘솔 JavaScript 콘솔은 전체 로그 리스트를 보여주거나 또는 에러, 경고, 메시지만 보여줄 수 있다. 그림 1의 에러 메시지에서는 aol.com 에서 95 번째 줄에서 is_ns70이라는 미정의 변수에 접근을 시도한다는 것을 알 수 있다. 링크를 클릭하면 Mozilla의 내부 뷰 소스 창이 여리고 문제가 되는 라인이 표시된다. 또한 이 콘솔에서는 JavaScript를 확인할 수 있다. 입력된 JavaScript 문법을 확인하려면 인풋 필드에 그림 2. JavaScript 콘솔 확인 Mozilla의 JavaScript 엔진은 빌트인 디버깅 지원이 되기 때문에 JavaScript 개발자를 위한 강력한 툴을 제공할 수 있다. 그림 3의 Venkman은 강력한, 크로스 플랫폼 JavaScript 디버거이다. 이것은 Mozilla와 통합된다. 보통 Mozilla 릴리스와 함께 번들 되기 때문에 Tools -> Web Development -> JavaScript Debugger에서 찾을 수 있다. Firefox의 경우 이 디버거가 번들 되지 않는다. 대신 http://www.mozilla.org/projects/venkman/에서 다운로드 하여 설치한다. 또한 http://www.hacksrus.com/~ginda/venkman/의 개발 페이지에는 튜토리얼도 있다. 그림 3. Mozilla의 JavaScript 디버거 JavaScript 디버거는 Mozilla 브라우저 창에서 실행되는 JavaScript를 디버깅 한다. 이것은 중단점 관리, 콜 스택 검사, 변수/객체 검사 같은 표준 디버깅 기능을 지원한다. 모든 기능은 사용자 인터페이스 또는 디버거의 콘솔을 통해 접근할 수 있다. 이 콘솔을 사용하여 현재 디버깅되고 있는 JavaScript와 같은 범위로 임의의 JavaScript를 실행한다. Mozilla는 CSS1, CSS2, CSS3의 일부 등 Cascading Style Sheets (CSS)에 대한 강력한 지원 기능이 된다. 이것은 Internet Explorer와 다른 모든 브라우저들과 비교된다. Mozilla는 JavaScript 콘솔에 에러 또는 경고 엔트리를 추가한다. CSS 관련 문제가 생기면 JavaScript 콘솔을 검사하라. 가장 일반적인 CSS 관련 문제는 참조된 CSS 파일들 내부에 있는 CSS 정의가 적용되지 않는다는 점이다. 이는 CSS 파일에 잘못된 mimetype을 보내는 서버 때문이다. CSS 스팩에 따르면, CSS 파일은 많은 웹 애플리케이션들은 CSS와 단위를 함께 사용하지 않는다. 특히 JavaScript를 사용하여 CSS를 설정할 때 그렇다. Mozilla는 페이지가 스트릭트 모드에서 렌더링 되지 않는 한 이를 참아낸다. Internet Explorer는 순수 XHTML을 지원하지 않기 때문에 단위가 지정되지 않아도 신경 쓰지 않는다. 페이지가 엄격한 표준 모드에 있고, 단위가 사용되지 않는다면 Mozilla는 이 스타일을 무시한다.
위 예제는 엄밀한 doctype을 갖고 있기 때문에 이 페이지는 정확한 표준 모드로 렌더링된다. 첫 번째 div는 단위를 사용하기 때문에 40px 넓이이다. 하지만 두 번째 div는 넓이가 없다. 따라서 디폴트인 100% 비율로 넓이가 조정된다. JavaScript를 통해 넓이가 설정되면 똑 같이 적용된다. Mozilla는 CSS 표준을 지원하기 때문에 JavaScript를 사용하여 CSS를 설정하는 CSS DOM 표준도 지원한다. 이 엘리먼트의
그러한 방식으로 모든 CSS 애트리뷰트에도 접근할 수 있다. 웹 페이지가 strict 모드이면 단위를 설정해야 한다. 그렇지 않으면 Mozilla는 이 명령어를 무시한다. Mozilla와 Internet Explorer에서 CSS는 오버플로우 개념을 추가했다. 이것으로 오버플로우를 핸들하는 방법을 정의할 수 있다. 예를 들어, 높이가 지정된
그림 4에서 보듯, Mozilla는 표준이 정하는 대로 작동한다. 이 표준은, 내부 콘텐트가 그 부모 보다 크기 때문에, 내부 그림 4. DIV 오버플로우 Internet Explorer에서 비표준 CSS
Mozilla는 CSS 스팩을 정확히 따르고 이 예제에서 색깔을 녹색으로 바꿀 것이다. 이 두 가지 방식을 사용하여 Mozilla가 Internet Explorer와 비슷하게 작동하도록 하고, 계속 머무를 경우 텍스트의 색깔이 변하지 않도록 한다.
Internet Explorer 4 같은 기존 브라우저는 특정 환경에서 소위 말하는 쿼크(quirk)로 렌더링되었다. Mozilla는 표준에 순응하는 브라우저를 모토로 하기 때문에, 이러한 쿼크 작동으로 만들어진 오래된 웹 페이지들에 세 가지 모드를 지원한다. 페이지의 콘텐트와 딜리버리가 Mozilla가 사용 할 모드를 결정한다. Mozilla는 렌더링 된 모드를 View -> Page Info(또는 Ctrl-i)에 리스팅 할 것이다. 페이지가 배치될 모드는 doctype에 의존한다. doctype은 다음과 같다 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
파란색의 섹션은 공식 식별자고, 녹색 부분은 시스템 식별자(URI) 이다. 표준 모드는 가장 엄격한 렌더링 모드이다. W3C HTML과 CSS 스팩에 따라 페이지를 렌더링하며 어떤 쿼크도 지원하지 않는다. Mozilla는 다음과 같은 조건에서 이 모드를 사용한다.
Mozilla는 한 가지 이유 때문에 표준에 가까운 모드를 도입했다. CSS 2 스팩의 한 섹션이 테이블 셀에서 정밀한 레이아웃의 작은 이미지 때문에 디자인을 갈라낸 경우이다. 하나의 이미지를 만드는 대신 각각의 작은 이미지 사이를 공백으로 처리한다. 옛날 IBM 홈페이지(그림 5)가 그 예제이다. 그림 5. 이미지 갭 이미지 갭 문제가 발생할 때를 제외하고는, 표준에 가까운 모드는 표준 모드와 거의 비슷하게 작동한다. 이러한 문제는 표준에 순응하는 페이지에서 종종 발생하고 부정확한 디스플레이를 만들어 낸다. Mozilla는 다음과 같은 상황에서 표준에 가까운 모드를 사용한다.
자세한 내용은 이미지 갭 문제를 참조하라. 현재 웹은 유효하지 않거나 브라우저의 버그로 인해 작동되는 HTML 마크업이 상당히 많다. 옛날 Netscape 브라우저가 시장을 지배했을 때도 버그는 있었다. Internet Explorer가 탄생했을 때 그 당시의 콘텐트와도 작동해야 했기 때문에 그러한 버그 조차도 모방했다. 새로운 브라우저가 시장에 진입하면서 이러한 오래된 버그들(쿼크(quirks))은 백워드 호환을 위해 유지되었다. Mozilla는 쿼크 렌더링 모드에서 이를 지원한다. 이런 쿼크 때문에 완전히 표준에 순응하더라도 페이지 렌더링이 느려지는 것이다. 대부분의 웹 페이지들은 이 모드에서 렌더링 된다. Mozilla는 다음 상황에서 쿼크 모드를 사용한다.
List of Quirks와 List of Doctypes and What Modes They Cause를 참조하라. Mozilla와 Internet Explorer는 이벤트 분야에서 거의 다르다. Mozilla 이벤트 모델은 W3C와 Netscape 모델을 따르고 있다. Internet Explorer에서 함수가 이벤트에서 호출되면
이벤트 객체가 노출하는 속성과 함수들은 Mozilla와 Internet Explorer가 다르게 이름을 붙이고 있다. 표 4를 보자. 표 4. Mozilla와 Internet Explorer의 이벤트 속성
Mozilla는 JavaScript를 통해 이벤트를 첨부할 때 두 가지 방식을 사용할 수 있다. 첫 번째 방법은 모든 브라우저에서 지원된다. 객체에 직접 이벤트 속성을 설정하는 것이다.
Mozilla는 DOM 노드에 리스너를 붙일 때 W3C 표준 방식을 지원한다.
속성을 설정할 때 Internet Explorer에서 <script> 태그를 이벤트 핸들러로 변환하는 방식을 Mozilla는 지원하지 않는다. 그 방식은 이벤트 핸들러가 <script> 를 표 5. Mozilla와 Internet Explorer의 이벤트 메소드 차이점
Mozilla는 W3C 표준에 가장 잘 순응하는 브라우저라고 자부하지만, W3C에는 없는 Mozilla 1.3은 Internet Explorer의 designMode 기능을 도입했다. 이것은 HTML 문서가 리치 텍스트 에디터 필드로 변환되는 것이다. 일단 에디터로 바뀌면 명령어는 Mozilla는 iframe의 문서 객체에
Mozilla와 Internet Explorer의 또 다른 차이점은 리치 텍스트 에디터를 만드는 HTML이다. Mozilla는 기본적으로 마크업을 생성할 때 CSS를 사용한다. 하지만 Mozilla에서는 HTML과 CSS 모드를 토글링 할 수 있다.
아래 표는 Mozilla의 execCommand 가 지원하는 명령어 리스트이다. 표 6. 리치 텍스트 편집 명령어
자세한 정보는 DevEdge를 참조하기 바란다. Mozilla는 XSLT와 웹 서비스 같은 XML과 XML 기반 기술을 지원한다. 또한 XMLHttpRequest 같은 비표준 Internet Explorer 확장도 지원한다. 표준 HTML 처럼, Mozilla는 W3C XML DOM 스팩을 지원한다. 따라서 모든 XML 문서를 조작할 수 있다. Internet Explorer의 XML DOM과 Mozilla의 차이점은 Internet Explorer의 비표준 작동에서 기인한다. 가장 큰 차이점은 공백 텍스트 노드를 핸들하는 방식이다. XML이 생성되면 여기에는 XML 노드들 간 공백이 포함된다. Internet Explorer에서
JavaScript의 첫 번째 줄에서는 XML 문서가 로딩되고 앞에 언급했듯이, 모든 노드들은 노드 유형(
Internet Explorer에는 XML 데이터 섬(island)이라는 비표준 기능이 있다. 비표준 HTML 태그 크로스 브라우저 솔루션 중에는 DOM 파서를 사용하는 것이 있다. 이 파서는 직렬화된 XML 문서를 포함하고 있고, 파싱된 XML을 위해 이 문서를 만드는 스트링을 파싱한다. Mozilla는
Internet Explorer에서는 MSXML의
표 7은 Mozilla의 표 7. XMLHttpRequest 메소드와 속성
Mozilla는 XSL Transformations (XSLT) 1.0을 지원한다. 자바스크립트가 XSLT를 변형할 수 있으며, 문서 상에 XPAT 실행도 가능하다. Mozilla에서는 스타일시트와 XML mimetype( Internet Explorer 5.0과 5.5는 XSLT의 실행 초안을 지원했다. 이것은 최종 1.0 권고안과는 매우 다르다. 어떤 버전으로 XSLT 파일이 쓰여졌는지를 구분할 수 있는 가장 쉬운 방법은 네임스페이슬 보는 것이다. 1.0 권고안의 네임스페이스는 XSLT에서 브라우저를 구별해야 한다면 "xsl:vendor" 시스템 속성을 쿼리하면 된다. Mozilla의 XSLT 엔진은 "Transformiix"를, Internet Explorer는 "Microsoft."를 리턴할 것이다.
Mozilla는 또한 XSLT용 자바스크립트 인터페이스를 제공하여 웹 사이트가 메모리에서 XSLT 변형을 수행할 수 있도록 한다. 글로벌 자바스크립트
표 8. XSLTProcessor 메소드
애플리케이션을 모질라 기반 브라우저에서 실행하려고 할 때 발생하는 일반적인 문제들을 설명했다. 웹 애플리케이션을 개발할 때에는 여러 브라우저들의 차이점을 항상 생각하고 이해해야 한다. 아래 참고자료 섹션에서 크로스 브라우저 개발에 대한 자세한 내용을 참조하기 바란다.
|
'인터넷정보' 카테고리의 다른 글
MSIE 와 FireFox호환 (pasteHTML) (0) | 2007.10.11 |
---|---|
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
라디오 버튼을 체크하기
//---------------------------------------------------------------------------------- 라디오 버튼 자동 체크
function auto_radio(this_s,v_value){ //라디오 버튼인지 체크하지는 않습니다.
var m =this_s.length;
if(!m){
this_s.checked = true;
return;
}
for(var i=0;i
this_s[i].checked = true;
return;
}
}
this_s[0].checked = true;
}
//------------------------------------------------------------------------
'인터넷정보' 카테고리의 다른 글
MSIE의 insertAdjacentHTML 에뮬레이션 (0) | 2007.10.11 |
---|---|
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
up down 버튼 만들기 (DOM)
ex.
<script>
function mk_btn_updown(idname,num_max,num_min){
//num_max이 0(false)이면 max값을 무한대이다.
//min의 기본값은 0이다.
var num_min=parseInt(num_min)?parseInt(num_min):0;
var num_max=parseInt(num_max)?parseInt(num_max):'max';
var ta = document.getElementById(idname);
ta.style.verticalAlign='middle';
ta.readOnly = true;
var span = document.createElement('span')
span.style.margin='0px';
span.style.padding='0px';
span.style.borderStyle='solid';
span.style.borderWidth='0px';
//span.style.height='10px';
//span.style.width='10px';
span.style.top='0px';
span.style.left='0px';
span.style.verticalAlign='middle';
//span.style.position='relative';
var input_up = document.createElement('input')
input_up.type='button';
input_up.value='▲';
input_up.style.backgroundColor='#FFEEEE';
input_up.style.verticalAlign='middle';
input_up.style.fontSize='8px';
input_up.style.borderStyle='none';
input_up.style.width='10px';
input_up.style.height='20px';
input_up.style.margin='0px';
input_up.style.padding='0px';
//input_up.style.top='-5px';
//input_up.style.float='left';
//input_up.style.position='relative';
var input_down = input_up.cloneNode(false);
input_down.style.verticalAlign='middle';
input_down.value='▼';
input_down.style.backgroundColor='#EEEEFF';
//input_down.style.top='5px';
//input_down.style.left='-10px';
span.appendChild(input_up);
span.appendChild(input_down);
var handleEvent1 = function(){
temp = input_up.parentNode.previousSibling;
if(num_max=='max'){
temp.value=parseInt(temp.value)+1;
}else if((next=parseInt(temp.value)+1)<=num_max){
temp.value=next;
}
}
if(input_up.attachEvent)
input_up.attachEvent("onclick", handleEvent1 );
else
input_up.addEventListener("click", handleEvent1 , false);
var handleEvent2 = function(){
temp = input_down.parentNode.previousSibling;
if(parseInt(temp.value)-1>= num_min){
temp.value=parseInt(temp.value)-1;
}
}
if(input_down.attachEvent)
input_down.attachEvent("onclick", handleEvent2 );
else
input_down.addEventListener("click", handleEvent2 , false);
if (ta.nextSibling)
ta.parentNode.insertBefore(span,ta.nextSibling);
else ta.parentNode.appendChild(span);
}
</script>
<div>
<input type="text" id="test" size="5" maxlength="10" value="3" style="font-size:12px; ">
</div>
<script>mk_btn_updown('test',10,-4);</script>
'인터넷정보' 카테고리의 다른 글
[PHP] 항상 새로고침 해더 설정 (0) | 2007.10.11 |
---|---|
innerText 대신 사용 (0) | 2007.10.11 |
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting
<SCRIPT>
var numArray=[0,21,1225,1247,11,1119,8];
document.write('numArray='+numArray+'<BR><BR>') // 배열변수 출력
function sortSame(a,a){ return a-a}; // 인수 a,a로 배열변수 정렬에 변화 없다.
document.write(numArray.sort(sortReverse)); // 기능함수 호출하여 출력
function sortNumbers(a,b){ return a-b}; // 인수 a,b로 배열변수를 오름차 순으로 정렬
document.write(numArray.sort(sortNumbers)+'<BR>'); // 기능함수 호출하여 출력
function sortReverse(b,a){ return a-b}; // 인수 b,a로 배열변수를 내림차 순으로 정렬
document.write(numArray.sort(sortReverse)); // 기능함수 호출하여 출력
</SCRIPT>
<SCRIPT>
function reverseSort(b,a){
if(a>b) return 1;
if(a<b) return -1;
return 0;
}
var numArray=[0,21,1225,1247,11,1119,8]
document.write(numArray+'<BR>');
document.write(numArray.sort(reverseSort));
</SCRIPT>
-----------=-------------
JS에서 배열을 소팅할 때 기능함수를 사용하여, 소팅 방법을 정할 수 있다.
http://koxo.com/lang/js/method/exp/xsortReverse.html#sortfunction
'인터넷정보' 카테고리의 다른 글
innerText 대신 사용 (0) | 2007.10.11 |
---|---|
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
JS로 벡터이미지 그리기
'인터넷정보' 카테고리의 다른 글
멋진 트리구조 폴더 (JS와 XML 등등 혼합) (0) | 2007.10.11 |
---|---|
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
'인터넷정보' 카테고리의 다른 글
Internet Explorer에서 Mozilla로 애플리케이션 마이그레이션 하기 (0) | 2007.10.11 |
---|---|
라디오 버튼을 체크하기 (0) | 2007.10.11 |
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime() (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity
- MSIE (5.5+)
FILTER: alpha(opacity:[0~100]) - 모질라계열
-moz-opacity:[0~1] - CSS3지원 계열(FF,오페라 등)
opacity:[0~1]
------
Normal |
MSIE(5.5+) |
style="filter:Alpha(opacity=40)" |
모질라계열(FF) |
style="-moz-opacity:0.4" |
CSS3(오페라,FF) |
style="opacity:0.4" |
<UL>
<LI>MSIE (5.5+)<BR>FILTER: alpha(opacity:[0~100])
<LI>모질라계열<BR>-moz-opacity:[0~1]
<LI>CSS3지원 계열(FF,오페라 등)<BR>opacity:[0~1] </LI></UL>
<P>------<BR></P>
<TABLE style="BACKGROUND-COLOR: #666666" cellSpacing=0 cellPadding=0 width=300
border=0>
<TBODY>
<TR>
<TD>Normal</TD></TR>
<TR>
<TD> </TD></TR></TBODY></TABLE><BR>
<TABLE style="FILTER: Alpha(opacity=40); BACKGROUND-COLOR: #666666"
cellSpacing=0 cellPadding=0 width=300 border=0>
<TBODY>
<TR>
<TD>MSIE(5.5+)</TD></TR>
<TR>
<TD>style="filter:Alpha(opacity=40)"</TD></TR></TBODY></TABLE><BR>
<TABLE style="BACKGROUND-COLOR: #666666; moz-opacity: 0.4" cellSpacing=0
cellPadding=0 width=300 border=0>
<TBODY>
<TR>
<TD>모질라계열(FF)</TD></TR>
<TR>
<TD>style="-moz-opacity:0.4"</TD></TR></TBODY></TABLE><BR>
<TABLE style="BACKGROUND-COLOR: #666666; opacity: 0.4" cellSpacing=0
cellPadding=0 width=300 border=0>
<TBODY>
<TR>
<TD>CSS3(오페라,FF)</TD></TR>
<TR>
<TD>style="opacity:0.4"</TD></TR></TBODY></TABLE>
'인터넷정보' 카테고리의 다른 글
라디오 버튼을 체크하기 (0) | 2007.10.11 |
---|---|
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime() (0) | 2007.10.11 |
showModalDialog Method (IE 전용) (0) | 2007.10.11 |
insert row 테이블에 row 추가하기
<script type="text/javascript">
var i_num=0;
function table_insert_row(this_s){
parent_td = this_s.parentNode;
parent_tr = parent_td.parentNode;
parent_table = parent_tr.parentNode;
clone_tr = parent_tr.cloneNode(true);
if (parent_tr.nextSibling)
parent_tr.parentNode.insertBefore(clone_tr,parent_tr.nextSibling);
else parent_tr.parentNode.appendChild(clone_tr);
//parent_table.appendChild(clone_tr)
}
</script>
<table width="100" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="50%"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#993300">
<td> </td>
<td> <span onClick="table_insert_row(this);">삽입</span></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td bgcolor="#0066CC"> <span onClick="table_insert_row(this);">삽입</span></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td bgcolor="#99CC33"> </td>
<td> <span onClick="table_insert_row(this);">삽입</span></td>
</tr>
</table>
'인터넷정보' 카테고리의 다른 글
up down 버튼 만들기 (DOM) (0) | 2007.10.11 |
---|---|
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime() (0) | 2007.10.11 |
showModalDialog Method (IE 전용) (0) | 2007.10.11 |
showModelessDialog 를 FF에서 사용하기 (0) | 2007.10.11 |
function pop_open_nos(url,name,width,height){
var left = (screen.width-width)/2;
var top = (screen.height-height)/3;
var toolbar_str = 0;
var menubar_str = 0;
var statusbar_str = 0;
var scrollbar_str = 0;
var resizable_str = 0;
var property ='left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str
pop_result = window.open(url, name, property);
return pop_result;
}
</script>
<input name="" type="button" onClick="pop_open_nos('http://kr.yahoo.com','test',200,300);" value="실험">
'인터넷정보' 카테고리의 다른 글
[JS] 배열 소트 기능함수 사용, Array sorting (0) | 2007.10.11 |
---|---|
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime() (0) | 2007.10.11 |
showModalDialog Method (IE 전용) (0) | 2007.10.11 |
showModelessDialog 를 FF에서 사용하기 (0) | 2007.10.11 |
문자열 <-> 유니코드 변환 escape(),unescape() (0) | 2007.10.11 |
한국전통 표준 색명 및 색상
한국의 전통색은 기본이 되는 오방색(五方色)인 오정색(五正色)과
정색의 혼합으로 만들어진 오간색(五間色)으로 이루워집니다.
오정색(五正色):적(赤), 청(靑), 황(黃), 흑(黑), 백(白)
오간색(五間色):유황(유黃), 홍(紅), 벽(碧) 녹(綠), 자(紫)
오방색의 표준은 한국자수박물관과 석주선기념민속박물관의 유물자료를 참고로
유물의 색깔과 현재 보편적으로 통용되는 인쇄용 색견본을 비교해 선정한 것이고,
서백과 동청이 배합하여 벽색을 이루고, 남주(적)와 북현(흑)이 배합하여 자색을 이루고, 중황과 동청이 배합하여 녹색을 이루고, 서백과 남주가 배합하여 홍색을 이루는 오행배합 원리로 여러가지 색깔의 좌표를 추정한 것입니다.
한국전통 표준 색명 및 색상 | ||||||
빛 | 색 이름 | Munsell | RGB | CMYK | #16진수 | |
황 색 계 黃 色 界 | 황색(黃色) | 6.4Y 8.4/10.3 | 244 220 74 | 2 14 80 0 | #F4DC4A | |
유황색(유黃色) | 1.2Y 7.7/7.3 | 238 196 118 | 5 27 60 1 | #EEC476 | ||
명황색(明黃色) | 2.5GY 8.3/12.0 | 216 226 0 | 15 3 96 0 | #D8E200 | ||
담황색(淡黃色) | 7.5Y 9.2/3.2 | 250 241 194 | 2 5 30 0 | #FAF1C2 | ||
송화색(松花色) | 2.0GY 9.0/7.0 | 238 241 141 | 7 0 57 0 | #EEF18D | ||
자황색(赭黃色) | 4.0Y 7.8/9.2 | 236 202 86 | 5 23 75 1 | #ECCA56 | ||
행황색(杏黃色) | 5.6YR 7.4/9.2 | 253 179 109 | 0 36 62 0 | #FDB36D | ||
두록색(豆綠色) | 4.0Y 8.0/4.6 | 228 209 152 | 11 17 45 1 | #E4D198 | ||
적황색(赤黃色) | 4.3YR 7.0/12.0 | 255 163 75 | 0 36 70 0 | #FFA34B | ||
토황색(土黃色) | 6.9YR 5.8/7.6 | 201 143 83 | 16 49 71 6 | #C98F53 | ||
지황색(芝黃色) | 4.0Y 7.5/7.4 | 224 195 105 | 10 24 67 2 | #E0D369 | ||
토색(土色) | 9.3YR 5.3/5.4 | 174 136 88 | 24 43 65 15 | #AE8858 | ||
치자색(梔子色) | 4.7Y 8.2/8.4 | 242 213 105 | 4 18 68 1 | #F2D569 | ||
홍황색(紅黃色) | 7.7R 7.0/5.7 | 230 171 159 | 8 40 29 1 | #E6AB9F | ||
자황색(紫黃色) | 7.6YR 6.4/3.2 | 193 165 140 | 23 34 41 6 | #C1A58C | ||
금색(金色) | - | - | - | - | ||
청 록 색 계 靑 綠 色 界 | 청색(靑色) | 6.8PB 3.3/9.2 | 70 91 153 | 85 61 9 4 | #465B99 | |
벽색(碧色) | 2.7PB 5.7/10.7 | 70 158 222 | 74 22 0 0 | #469EDE | ||
천청색(天靑色) | 1.2PB 6.9/7.1 | 134 188 227 | 54 10 2 1 | #86BCE3 | ||
담청색(淡靑色) | 9.2B 5.5/7.3 | 82 155 192 | 71 17 11 7 | #529BC0 | ||
취람색(翠藍色) | 5.9BG 7.0/6.7 | 104 199 193 | 60 0 31 0 | #68C7C1 | ||
양람색(洋藍色) | 0.6P 5.2/11.0 | 146 129 205 | 54 49 0 1 | #9281CD | ||
벽청색(碧靑色) | 5.4PB 4.9/8.5 | 99 133 188 | 70 44 0 0 | #6385BC | ||
청현색(靑玄色) | 5.3PB 3.8/5.5 | 86 106 142 | 69 43 15 22 | #566A8E | ||
감색(紺色) | 5.5PB 3.2/5.2 | 73 92 127 | 73 46 15 29 | #495C7F | ||
남색(藍色) | 2.2P 3.2/8.0 | 106 80 137 | 69 70 12 7 | #6A5089 | ||
연람색(軟藍色) | 3.6P 4.1/8.9 | 132 100 159 | 58 63 4 3 | #84649F | ||
벽람색(碧藍色) | 8.7PB 5.3/5.9 | 138 139 180 | 53 40 7 4 | #8A8BB4 | ||
숙람색(熟藍色) | 3.2P 3.6/5.0 | 112 94 130 | 57 56 16 21 | #705E82 | ||
군청색(群靑色) | 7.8PB 3.1/3.5 | 85 87 114 | 64 50 21 33 | #555790 | ||
녹색(綠色) | 0.1G 5.2/6.2 | 104 151 100 | 58 18 68 13 | #689764 | ||
명록색(明綠色) | 1.6G 6.3/10.3 | 80 186 110 | 65 0 74 0 | #50BA6E | ||
유록색(柳綠色) | 0.1G 5.7/8.4 | 100 167 94 | 61 13 77 4 | #64A75E | ||
유청색(柳靑色) | 7.7GY 6.0/9.0 | 122 173 76 | 53 13 85 4 | #7AAD4C | ||
연두색(軟豆色) | 6.6GY 8.5/8.4 | 198 234 130 | 23 0 62 0 | #C6EA82 | ||
춘유록색(春柳綠色) | 5.2GY 8.7/5.3 | 220 234 162 | 16 0 48 0 | #DCEAA2 | ||
청록색(靑綠色) | 2.3BG 5.6/7.8 | 0 166 149 | 80 7 51 1 | #00A695 | ||
진초록색(眞草綠色) | 8.0G 5.5/7.5 | 55 163 134 | 75 11 57 3 | #37A386 | ||
초록색(草綠色) | 0.1G 6.0/8.7 | 105 175 99 | 60 9 76 2 | #69AF63 | ||
흑록색(黑綠色) | 1.1BG 4.2/3.4 | 83 123 114 | 65 25 46 25 | #537B72 | ||
비색(翡色) | 3.2BG 7.2/5.4 | 131 202 189 | 53 0 33 0 | #83CABD | ||
옥색(玉色) | 9.0BG 8.0/4.6 | 158 220 221 | 40 0 16 0 | #9EDCDD | ||
삼청색(三靑色) | 7.4PB 4.6/9.7 | 107 122 187 | 69 47 0 0 | #6B7ABB | ||
뇌록색(磊綠色) | 5.3BG 4.6/5.4 | 57 136 133 | 76 20 44 15 | #398885 | ||
양록색(洋綠色) | 5.1G 6.4/9.1 | 65 188 143 | 69 0 58 0 | #41BC8F | ||
하엽색(荷葉色) | 9.5GY 3.7/3.6 | 86 109 82 | 58 30 62 35 | #566D52 | ||
흑청색(黑靑色) | 5.7PB 5.0/3.2 | 127 135 155 | 53 36 21 13 | #7F879B | ||
청벽색(靑碧色) | 3.6PB 6.0/6.0 | 132 162 198 | 55 25 7 3 | #84A2C6 | ||
무 채 색 계 無 彩 色 界 | 백색(白色) | N 9 | 236 235 235 | 9 6 6 0 | #ECEBEB | |
흑색(黑色) | N 1 | 44 44 44 | 62 51 50 69 | #2C2C2C | ||
회색(灰色) | 0.2GY 5.7/0.4 | 154 153 148 | 41 31 34 9 | #9A9994 | ||
구색(鳩色) | 7.0PB 7.0/0.4 | 185 184 187 | 31 22 20 2 | #B9B8BB | ||
치색(緇色) | 5.4RP 4.4/0.2 | 123 120 121 | 49 40 37 21 | #7B7879 | ||
연지회색(嚥脂灰色) | 9.5P 5.0/2.0 | 145 132 142 | 43 41 27 14 | #91848E | ||
설백색(雪白色) | 6.2G 8.8/0.5 | 226 231 228 | 14 5 10 0 | #E2E7E4 | ||
유백색(乳白色) | 8.0Y 9.0/2.0 | 242 236 205 | 6 6 23 0 | #F2ECCD | ||
지백색(紙白色) | 6.0Y 9.0/1.3 | 241 235 216 | 7 7 17 0 | #F1EBD8 | ||
소색(素色) | 1.3Y 8.4/2.7 | 236 218 187 | 8 15 28 0 | #ECDABB | ||
자 색 계 紫 色 界 | 자색(紫色) | 6.7RP 3.3/8.2 | 144 68 100 | 30 75 24 26 | #904464 | |
자주색(紫朱色) | 4.7RP 3.6/10.3 | 158 69 116 | 34 79 19 13 | #9E4574 | ||
보라색(甫羅色) | 0.5RP 4.4/13.4 | 180 85 162 | 36 74 0 0 | #B455A2 | ||
홍람색(紅藍色) | 5.7P 3.8/8.6 | 132 91 146 | 56 67 8 6 | #845B92 | ||
포도색(葡萄色) | 0.6RP 3.0/6.0 | 116 73 108 | 49 68 19 28 | #74496C | ||
청자색(靑磁色) | 1.5P 3.4/14.2 | 118 73 173 | 71 33 0 0 | #7649AD | ||
벽자색(碧紫色) | 7.0PB 6.0/9.0 | 140 158 217 | 53 32 0 0 | #8C9ED9 | ||
회보라색(灰甫羅色) | 3.6P 6.0/7.0 | 173 152 197 | 38 41 0 0 | #AD98C5 | ||
담자색(淡紫色) | 6.4P 6.0/4.0 | 173 154 177 | 35 37 12 5 | #AD9AB1 | ||
다자색(茶紫色) | 9.7R 2.7/2.2 | 99 74 70 | 44 57 51 44 | #634A46 | ||
적자색(赤紫色) | 7.6RP 5.6/8.0 | 203 129 148 | 17 57 19 5 | #CB8194 | ||
적 색 계 赤 色 界 | 적색(赤色) | 7.5R 4.8/12.8 | 214 90 72 | 9 78 71 1 | #F15A48 | |
홍색(紅色) | 0.2R 5.2/15.0 | 234 87 123 | 0 79 25 0 | #EA577B | ||
적토색(赤土色) | 6.8R 4.2/9.7 | 181 87 77 | 21 75 64 10 | #B5574D | ||
휴색(髹色) | 7.0R 3.4/4.8 | 134 83 78 | 30 63 51 33 | #86534E | ||
갈색(褐色) | 2.7YR 5.0/4.5 | 169 126 105 | 26 48 50 16 | #A97E69 | ||
호박색(琥珀色) | 5.2YR 6.0/8.8 | 215 145 82 | 12 51 72 2 | #D78F52 | ||
추향색(秋香色) | 3.3YR 6.0/6.0 | 204 148 115 | 16 46 51 5 | #CC9473 | ||
육색(肉色) | 9.4R 5.7/8.9 | 216 130 102 | 11 59 56 2 | #D88266 | ||
주색(朱色) | 8.4R 6.0/11.7 | 240 129 98 | 0 62 58 0 | #F08162 | ||
주홍색(朱紅色) | 3.0R 6.2/13.0 | 253 126 132 | 0 60 35 0 | #FD7E84 | ||
담주색(淡朱色) | 2.6YR 7.5/9.0 | 255 178 128 | 0 36 51 0 | #FFB280 | ||
진홍색(眞紅色) | 4.8RP 4.5/5.2 | 156 110 129 | 33 55 23 17 | #9C6E81 | ||
선홍색(鮮紅色) | 3.7RP 5.4/15.0 | 226 100 169 | 14 7 0 0 | #E264A9 | ||
연지색(嚥脂色) | 8.5RP 5.4/12.0 | 222 109 139 | 8 70 19 1 | #DE6D8B | ||
훈색(䌲色) | 6.2RP 6.0/11.2 | 228 130 163 | 7 61 7 1 | #E482A3 | ||
진분홍색(眞粉紅色) | 2.8RP 6.2/13.7 | 238 129 192 | 15 57 0 0 | #EE81C0 | ||
분홍색(粉紅色) | 5.5RP 7.5/5.8 | 241 189 204 | 4 34 4 1 | #F1BDCC | ||
연분홍색(軟粉紅色) | 5.5RP 7.7/5.0 | 235 191 204 | 7 31 5 1 | #EBBFCC | ||
장단색(長丹色) | 7.5R 5.0/12.1 | 216 99 79 | 9 74 67 1 | #D8634F | ||
석간주색(石間硃色) | 2.2YR 4.2/6.4 | 160 101 73 | 25 60 66 22 | #A06549 | ||
흑홍색(黑紅色) | 5.0RP 5.0/5.3 | 169 123 139 | 30 52 23 13 | #A97B8B |
*금색은 표현할 수 없는 별색
'인터넷정보' 카테고리의 다른 글
JS로 벡터이미지 그리기 (0) | 2007.10.11 |
---|---|
예쁜 폰트들 (0) | 2007.10.11 |
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime() (0) | 2007.10.11 |
showModalDialog Method (IE 전용) (0) | 2007.10.11 |
showModelessDialog 를 FF에서 사용하기 (0) | 2007.10.11 |
문자열 <-> 유니코드 변환 escape(),unescape() (0) | 2007.10.11 |
현재 스크롤 위치 알아내기 (0) | 2007.10.11 |
PHP용 경과시간 체크함수 /php timer 타이머/ microtime()
http://oxtag.com/php/p/timer.php
<?
function php_timer(){
static $arr_timer;
if(!isset($arr_timer)){
$arr_timer = explode(" ", microtime());
}else{
$arr_timer2 = explode(" ", microtime());
$result = ($arr_timer2[1] - $arr_timer[1]) + ($arr_timer2[0] - $arr_timer[0]);
$result = sprintf("%.4f",$result);
return $result;
}
return false;
}
//----------------------------예제
print("초기화");
print php_timer().'<br>';
print("2초 쉽니다.");
sleep(2);
print php_timer().'<br>';
print("3초 쉽니다.");
sleep(3);
print php_timer().'<br>';
print("4초 쉽니다.");
sleep(4);
print php_timer().'<br>';
?>
'인터넷정보' 카테고리의 다른 글
예쁜 폰트들 (0) | 2007.10.11 |
---|---|
IE,FF 의 투명도 설정 : opacity (0) | 2007.10.11 |
insert row 테이블에 row 추가하기 (0) | 2007.10.11 |
팝업 띄우기 (0) | 2007.10.11 |
한국 전통 표준색 (0) | 2007.10.11 |
showModalDialog Method (IE 전용) (0) | 2007.10.11 |
showModelessDialog 를 FF에서 사용하기 (0) | 2007.10.11 |
문자열 <-> 유니코드 변환 escape(),unescape() (0) | 2007.10.11 |
현재 스크롤 위치 알아내기 (0) | 2007.10.11 |
롤링 배너용 js(class 형식) (0) | 2007.10.11 |