meta tag가 갑자기 생각나서 정리해 둠

<meta http-equiv="content-type" content="text/html; charset=euc-kr" /> :웹문서의 언어를 설정 (euc-kr)
<meta http-equiv="content-type" content="text/html; charset=utf-8" />    :웹문서의 언어를 설정 (utf-8)
<meta http-equiv="imagetoolbar" content="no" /> :그림위에 마우스 오버시 이미지 관련 툴바가 생기지 않음
<meta http-equiv="refresh" content="0; url=http://이동주소" /> :0초후 해당 페이지이동
<meta http-equiv="refresh" content="60" /> :60초마다 새로고침
<meta http-equiv="pragma" content="no-cache" />  : 캐쉬에서 해당페이지 읽어들이는 걸 방지

<meta name="subject" content="홈페이지주제" />
<meta name="title" content="홈페이지이름" />
<meta name="description" content="홈페이지 설명" />
<meta name="keywords" content="홈페이지 키워드" />
<meta name="author" content="홈페이지 주인 or 작성자" />
<meta name="publisher" content="만든단체나회사" />
<meta name="other Agent" content="웹책임자" />
<meta name="classification" content="카테고리위치(분류)" />
<meta name="generator" content="홈페이지 제작도구" />
<meta name="reply-to" content="메일주소" />
<meta name="filename" content="파일이름" />
<meta name="author-date" content="제작일" /> 
<meta name="location" content="홈페이지 위치(소속국가)" />
<meta name="distribution" content="배포자" />
<meta name="copyright" content="저작권" />
<meta NAME="content-language" content="kr" /> : 기술된 언어

메타태그의 검색로봇 관련
<meta name="robots" content="all" />                        : 로봇 검색을 허가함
<meta name="robots" content="none" />                    : 로봇 검색을 허가하지 않음
<meta name="robots" content="index,follow" />          : 이 문서도 긁어가고 링크된 문서도 긁어감.
<meta name="robots" content="noindex,follow" />       : 이 문서는 긁어가지 말고 링크된 문서만 긁어감.
<meta name="robots" content="index,nofollow" />       : 이 문서는 긁어가되, 링크는 무시함.
<meta name="robots" content="noindex,nofollow" />   : 이 문서도 긁지 않고, 링크도 무시함.


반응형

'Developer > CSS & HTML' 카테고리의 다른 글

Tistory CSS  (0) 2008.02.19
검색엔진 노출방지 robots.txt & meata tag  (0) 2008.02.04
DOCTYPE 선언  (0) 2007.11.22
Android는 기본 개발 언어가 JAVA이기 때문에 JAVA 개발시 기본적으로 설치 하는 Tool 위에 Android 개발에 필요한 Tool을 설치한다.

Android는 오픈소스로, 통합된 개발 환경을 한 회사에서 주도적으로 만든 것이 아니기 때문에 이것저것 설치해야 하며, 설치 초보자는 순서를 잘 지켜 차례대로 설치 하는 것이 좋다.

1. JDK(Java Development Kit) 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html


2. 이클립스 설치
http://www.eclipse.org/downloads/

* 이클립스 지원에 대한 Android 공식 공지 (http://developer.android.com/sdk/requirements.html)
2014.04.29. 현재 : Eclipse 3.7.2 (Indigo) 나 그 상위 버전을 사용 할 것. 이클립스 3.6 (Helios)는 더 이상 최신 버전의 ADT(Android Development Tools)를 지원하지 않음.
2012.01.05. 현재 : Eclipse 3.6 (Helios) 나 그 상위 버전을 사용 할 것. 이클립스 3.5 (Galileo)는 더 이상 최신 버전의 ADT(Android Development Tools)를 지원하지 않음.
2010.08.19. 현재 : 최신 버젼은 3.6 (Helios) 이지만, Android SDK 구동에 3.5가 안정적이다. 


3. ADT(Android Development Tool) 플러그인 설치
이클립스에서 Help > Install New Software 에서 'Add' 버튼을 눌러 android ADT 경로(https://dl-ssl.google.com/android/eclipse/)를 입력하여 설치한다.
설치중에 서명이 없는 소프트웨어가 있다는 경고가 뜨더라도 계속 설치한다.

ADT 공식 설명서는 아래 경로에 있다.(영문)
http://developer.android.com/sdk/eclipse-adt.html
ADT가 설치 됐는지 여부는 Help > About Eclipse > Installation Details 에서 확인 하면 된다.


4. Android SDK 설치
http://developer.android.com/sdk/index.html
SDK는 따로 설치할 필요 없이 압축만 풀어 두면 된다.
압축 해제 후, 이클립스의 Window > Preference > Android 에서 SDK의 Location을 압축을 푼 경로로 지정하고, Window > Android SDK and AVD Manager > Available Packages 에서 추가 SDK요소들을 다운 받는다.

뭘 설치 해야 할지 모를 때는 전부 선택해서 전부 설치 하는 것이 낫다.

SDK를 설치하기 전에 시스템 요구사항(영문) http://developer.android.com/sdk/requirements.html 을 읽어 보는 것이 좋다.
(2010.08.19일 현재 SDK가 이클립스 3.6에서 실행에 문제가 있으니 3.5에서 실행 해 달라는 내용의 경고가 있다.)

"Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice."


5. AVD(Android Virtual Device) 생성 및 옵션 조정
이클립스의 Window > Android SDK and AVD Manager 의 Virtual Devices 에서 New 버튼으로 AVD를 생성한다.
SD Card 설정은 최소한 9MB 보다 크게 설정해야 한다.
Android 화면은 HVGA가 표준 해상도 이다.
AVD 생성후 Start 버튼을 누르면 에뮬레이터가 작동한다.

AVD 경로에 영문이 아닌 문자가 있으면 이클립스가 에뮬레이터를 제대로 기동시키지 못한다.
윈도우 계정명을 한글로 쓰는 사람들은 에뮬레이터 기동시 에러가 발생 할 수 있다.
이런 경우 .android\avd 폴더 내의 'AVD명.avd' 폴더(ini 파일은 유지)를 영문만 있는 경로(예를 들면 C:\ 같은..)로 옮겨주고
avd 폴더에 있는 AVD명.ini 파일의 path 값을 해당 경로로 수정 해 준다.

 
이것으로 Android 프로그래밍을 위한 준비가 끝났다.


반응형

'Developer > Android' 카테고리의 다른 글

Android 2.3(Gingerbread) 에서 추가된 기능  (0) 2011.04.18
TabActivity 구현  (0) 2011.01.17
삼성 갤럭시탭 AVD Add-on Link  (0) 2010.11.08
사용자 삽입 이미지

출처 : addedbytes.com


반응형

event.keyCode의 값은 key event에 따라 그 값이 변한다.

'흔히 알고 있는 keyCode 값'은 onKeyDown 이나 onKeyUp Event 를 통해 추출할 수 있는 값들이고,
이 외에 onKeyPress 를 이용했을 경우에는 keyCode값이 달라진다.

사용예 : onKeyPress="if(event.keyCode==45) event.returnValue=false;"

key
press
key
down
key
up
Esc27(IE만)2727
F1-112-
F2-113113
F3-114114
F4-115115
F5-116116
F6-117-
F7-118118
F8-119119
F9-120120
F10-121121
F11-122122
F12-123123
key
press
key
down
key
up
0484848
1494949
2505050
3515151
4525252
5535353
6545454
7555555
8565656
9575757
key
press
key
down
key
up
~126192192
!334949
@645050
#355151
$365252
%375353
^945454
&385555
*425656
(405757
)414848
_95189189
+43187187
|124220220
`96192192
-45189189
=61187187
\92220220
{123219219
[91219219
}125221221
]93221221
:58186186
;59186186
"34222222
'39222222
<60188188
>62190190
?63191191
,44188188
.46190190
/47191191
key
press
key
down
key
up
PrintScreen--44
(IE외)
ScrollLock-145145
Pause-1919
BackSpace-88
Tab-9-
CapsLock-2020
Enter131313
Shift-1616
Left Ctrl-1717
Left
WindowMenu
-9191
Left Alt-1818
한자-25-
SpaceBar323232
한/영-229-
Right Alt-22921
Right
WindowMenu
-9292
Context Menu-9393
Right Ctrl-2525
Insert-4545
Home-3636
PageUp-3333
Delete-4646
End-3535
PageDown-3434
NumLock-144144
key
press
key
down
key
up
Up(↑)-3838
Left(←)-3737
Down(↓)-4040
Right(→)-3939
NumPadkey
press
key
down
key
up
/47111111
*42106106
-45109109
755103103
856104104
957105105
+43107107
452100100
553101101
654102102
1499797
2509898
3519999
0489696
.46110110
Enter131313
Home-3636
Up(↑)-3838
PageUp-3333
Left(←)-3737
Clear-1212
Right(→)-3939
End-3535
Down(↓)-4040
PageDown-3434
Insert-4545
Delete-4646
key
press
key
down
key
up
a976565
A656565
b986666
B666666
c996767
C676767
d1006868
D686868
e1016969
E696969
f1027070
F707070
g1037171
G717171
h1047272
H727272
i1057373
I737373
j1067474
J747474
k1077575
K757575
l1087676
L767676
m1097777
M777777
n1107878
N787878
o1117979
O797979
p1128080
P808080
q1138181
Q818181
r1148282
R828282
s1158383
S838383
t1168484
T848484
u1178585
U858585
v1188686
V868686
w1198787
W878787
x1208888
X888888
y1218989
Y898989
z1229090
Z909090


반응형
반응형

'Developer > JavaScript' 카테고리의 다른 글

JavaScript의 KeyEvent에 따른 keycode  (8) 2009.06.22
ASCII Character Codes Table & Cheat Sheet  (0) 2008.10.20
How well do you know prototype  (0) 2008.05.06
사용자 삽입 이미지

반응형

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
FileSystemObject개체  (0) 2007.07.03
Special Chars
9 \t (Tab)
10 \n (NL)
13 \r (CR)
32 Space
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
91 [
92 \
93 ]
94 ^
95 _
96 `
123 {
124 |
125 }
126 ~
Upper Case
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
Lower Case
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
Extended ASCII
128 &#128;
129 ? &#129;
130 , &#130;
131 f &#131;
132 " &#132;
133 &#133;
134 &#134;
135 &#135;
136 ^ &#136;
137 &#137;
138 S( &#138;
139 < &#139;
140 Œ &#140;
141 ? &#141;
142 Z( &#142;
143 ? &#143;
144 ? &#144;
145 &#145;
146 &#146;
147 &#147;
148 &#148;
149 . &#149;
150 -- &#150;
151 --- &#151;
152 ~ &#152;
153 &#153;
154 s( &#154;
155 > &#155;
156 œ &#156;
157 ? &#157;
158 z( &#158;
159 Y" &#159;
160   &#160;
161 ¡ &#161;
162 ? &#162;
163 ? &#163;
164 ¤ &#164;
165 ? &#165;
166 ? &#166;
167 § &#167;
168 ¨ &#168;
169 (c) &#169;
170 ª &#170;
171 ? &#171;
172 ? &#172;
173 ­ &#173;
174 ® &#174;
175 ? &#175;
176 ° &#176;
177 ± &#177;
178 ² &#178;
179 ³ &#179;
180 ´ &#180;
181 ? &#181;
182 &#182;
183 · &#183;
184 ¸ &#184;
185 ¹ &#185;
186 º &#186;
187 ? &#187;
188 ¼ &#188;
189 ½ &#189;
190 ¾ &#190;
191 ¿ &#191;
192 A` &#192;
193 A' &#193;
194 A^ &#194;
195 A~ &#195;
196 A" &#196;
197 A* &#197;
198 Æ &#198;
199 C, &#199;
200 E` &#200;
201 E' &#201;
202 E^ &#202;
203 E" &#203;
204 I` &#204;
205 I' &#205;
206 I^ &#206;
207 I" &#207;
208 Ð &#208;
209 N~ &#209;
210 O` &#210;
211 O' &#211;
212 O^ &#212;
213 O~ &#213;
214 O" &#214;
215 × &#215;
216 Ø &#216;
217 U` &#217;
218 U' &#218;
219 U^ &#219;
220 U" &#220;
221 Y' &#221;
222 Þ &#222;
223 ß &#223;
224 a` &#224;
225 a' &#225;
226 a^ &#226;
227 a~ &#227;
228 a" &#228;
229 a* &#229;
230 æ &#230;
231 c, &#231;
232 e` &#232;
233 e' &#233;
234 e^ &#234;
235 e" &#235;
236 i` &#236;
237 i' &#237;
238 i^ &#238;
239 i" &#239;
240 ð &#240;
241 n~ &#241;
242 o` &#242;
243 o' &#243;
244 o^ &#244;
245 o~ &#245;
246 o" &#246;
247 ÷ &#247;
248 ø &#248;
249 u` &#249;
250 u' &#250;
251 u^ &#251;
252 u" &#252;
253 y' &#253;
반응형

'Developer > JavaScript' 카테고리의 다른 글

50가지의 Ajax 예제  (0) 2008.11.10
How well do you know prototype  (0) 2008.05.06
.NET에서 AJAX구현시 javascript에서 한글 깨짐 방지  (0) 2008.05.02
abs() - 절대값구하기

array(배열) - 배열을 반환

asc() - 문자의 ANSI문자값을 반환

atn() - 아크 탄젠트로 반환

cbool() - boolean형식으로 반환

cbyte() - byte형식으로 반환

ccur() - currency형식으로 반환

cdate() - date형식으로 반환

cdbl() - double형식으로 반환

chr() - asc()함수의 반대, ANSI문자를 일반문자로 변환

cint() - interger형식으로 반환

clng() - long형식으로 반환

cos(각도) - 주어진 각도의 코사인 값을 반환

createobject() - 자동화 인터페이스를 통해 다른 응용프로그램이나 프로그래밍 도구에 나타나는 객체에 대한 참조를 만들어 반환

cstr() - string형식으로 반환

date() - 현재의 날자를 반환

DateDiff(간격, 날짜1, 날짜2 [,firstdayofweek[, firstweekofyear]]) - 간격인수 yyyy(년)

q(분기), m(월), y(일[일년기준]), d(일), w(요일), ww(주[일년기준]), h(시), n(분), s(초)

dateserial(년,월,일) - 주어진 년,월,일에 대한 date형식을 반환

exp() - 주어진 수에대한 자연로그(승수로 거듭제곱하는 수) 밑인 e를 반환

filter(inputstring,값[,include[,비교]])) - inputstring는 검색할 문자열의 1차원 배열
include는 true나 false값을 가지는데, true로 설정되면 값발견시 그값을 가진 배열을 반환하고,flase로 설정되면 검색에 맞지않는 부분의 배열을 반환
비교는 비교형식을 나타내는 숫자값입니다

fix() - 주어진 수의 정수를 반환

formatcurrency() - 원화 형식으로 반환 예) \1,000

formatdatetime() - 날자와 시간으로 형식화하여 반환

formatnumber(숫자,소수자릿수) - 숫자로 형식화된 식을 반환 소숫점 몇째자리...

formatpercent(수,소수자리수) - 퍼센트형식으로 반환 기본 소수2째자리까지.

hex() - 주어진 수를 16진수로 변환

hour() - 0과23 사이의 시간을 나타낸다

inputbox(프롬프트[,제목][,기본값][,xpos][,ypos][,helpfile,context]) - 대화상자

instr([시작,]문자열1,문자열2[,비교]) - 시작은 문자열 검색 시작위치, 문자열1은 검색할 문자이며, 문자열2는 찾아야할 문자, 비교는 비교상수를 나타냄

instrrev() - instr()과 반대로 문자 끝에서부터 검색

int() - 주어진 수의 정수부분을 반환

isarray() - 주어진 변수가 배열인지 판단하는 boolean값을 반환

isdate() - 주어진 식이 날짜로 전환 될수 있는지 나타내는 boolean값을 반환

isempty() - 주어진 변수가 초기화 되었는지 나타내는 boolean값을 반환

isnull() - 주어진 식이 유효한 데이터가 있는지 없는지 boolean값을 반환

isnumberic() - 주어진 식이 숫자로 값이 정해질 수 있는지 나타내는 boolean값 반환

isobject() - 자동화 객체를 참조하는지 여부를 나타내는 boolean값을 반환

join(목록[,구분기호]) - 배열에 포함되어 있는 여러 문자열을 결합하여 만든 문자열을 반환 목록은 1차원 배열이름, 구분기호는 문자열을 구분하기위해 사용하고 기본값은 "" 공백

lbound(배열이름[,차원]) - 주어진 배열에서 사용할 수 있는 가장 작은 첨자를 반환
배열이름은 배열 변수의 이름, 차원은 배열의 차원중 가장 작은 값을 나타냄

lcase() - 주어진 문자를 소문자로 반환

left(문자열,수) - 주어진 문자를 왼쪽으로부터 주어진 수만큼의 문자열을 반환

len() - 주어진 문자열의 문자 개수를 세는 함수

loadpicture(그림파일의이름) - 그림객체를 반환

log() - 주어진수의 자연 로그를 반환

ltime() - 앞에 공백이 없는 문자열을 반환

mid(문자열,시작[,길이]) - 주어진 문자열에서 주어진 위치에서부터의 길이만큼의 문자를 반환

minute(시간) - 시간에서 분값(0~59)을 반환

month(날짜) - 달의 값(1~12)을 반환

monthname(달) - 주어진달의 숫자표현을 문자표현으로 바꾸어준다

msgbox(프롬프트[,단추][,제목][,helpfile,context]) - 프롬프트는 대화상자 안의 내용 단추는 단추모양,제목은 제목표시줄이름, helpfile은 도움말위치,context는 도움말 문맥번호

now() - 현재 날자와 시간을 반환

oct() - 주어진 숫자의 8진수 값을 나타내는 문자를 반환

replace(문자열,찾을문자열,바꿀문자열[,시작[,횟수[,비교]]]) - 문자열은 바꿀 대상, 찾을 문자열은 문자열에서 바꾸어야 할 문자, 바꿀문자열은 찾은 문자열을 대치할 문자열, 시작은 검색시작위치 횟수는 바꾸는 횟수, 비교는 바꿀 때의 비교형식

right(문자열,수) - 주어진 문자의 오른쪽으로 부터 주어진 수만큼의 문자를 반환

rnd(수) - 난수를 반환 수는 생략가능

round(수) - 반올림한 수를 반환, 소수 첫째자리 반올림

rtrim(문자열) - 뒤에 공백이 없는 문자열을 반환

scriptengine() - 사용중인 스크립트 언어를 나타낼때 사용

scriptenginebuildversion() - 사용중인 스크립트 엔진의 버전 수를 반환

scriptenginemajorversion() - 사용중인 스크립트 엔진의 주 버전 수를 반환

scriptengineminorversion() - 사용중인 스크립트 언어의 보조 버전 수를 반환

second(시간) - 시스템 시간중 초값(0~59)을 반환

sgn(수) - 주어진 숫자의 부호를 나타내는 정수를 반환 0보다크면 1, 같으면 0, 작으면 -1을 반환

sin() - 주어진 라디안 값의 사인값을 반환

space(수) - 주어진 수만큼의 공백이 포함된 문자열을 반환

split(문자열[,구분기호[,수[,비교]]]) - 문자열은 배열에 포함될 문자열, 구분기호는 문자열 구분하기 위한 기호를 표시. 생략시 "" 공백, 수는 반환될 문자열의 수를 나타냄, 비교는 바꿀때의 비교형식

sqr(수) - 주어진 수의 제곱근을 반환

strcomp(문자열1,문자열2[,비교]) - 두개의 문자열을 비교하여 결과값을 반환

strreverse(문자열) - 주어진 문자열을 뒤에서부터 읽은 문자열을 반환

string(수,문자) - 주어진 문자가 주어진 수만큼의 반복된 문자열을 반환

tan(수) - 주어진 라디안 값의 수 만큼의 탄젠트 값을 반환

time() - 현재 시간을 반환

timeserial(시, 분, 초) - 주어진 시간,분,초에 대한 시간 값을 반환

timevalue(시간) - 시간이 포함된 date형식을 반환해주는 함수

trim(문자열) - 앞뒤 공백이 없는 문자열을 반환해 줄 때 사용

typename(변수이름) - 주어진 변수의 정보를 나타내는 문자열 반환

ubound(배열이름[,차원]) - 배열의 차원으로 가장 큰 첨자를 반환, 배열함수의 개수 - 1 반환

ucase(문자열) - 주어진 문자를 대문자로 바꾸어 줍니다

vartype(변수) - 변수의 형식을 나타내는 값을 반환

weekday(날짜[,firstday of week]) - 요일을 나타내는 정수를 반환, firstday for week는 첫재요일을 숫자로

weekdayname(요일,약어, firsrday of week) - 요일은 숫자, 약어는 약어의 유무의 부울값

year() - 현재의 년도를 나타낼때 쓰임


출처 : http://polomin.tistory.com/entry/asp-내장함수

반응형
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr" />
    <style type="text/css">
        #previewPhoto {
            width:100%;
            height:100%;
            position:absolute;
            z-index:1;
            filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='noPhoto.gif',sizingMethod=scale);
        }
        #previewPhotoTemp {
            width:115px;
            height:150px;
        }
    </style>
    <script type="text/JavaScript">
    <!--
        function showPhoto(src) {
            if(src.match(/\.(gif|jpg|jpeg)$/i)) {
                var obj = document.getElementById("previewPhotoTemp");
                obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod=image)";
                var w = obj.offsetWidth;
                var h = obj.offsetHeight;
                if(w > 115) { //image resize
                    var x_axis = w / 115;
                    var y_axis = parseInt(h / x_axis);
                }
                else { var y_axis = h; }

                //size setting
                document.getElementById("previewPhotoBox").style.width = '115px';
                document.getElementById("previewPhotoBox").style.height = y_axis + 'px';

                //image setting
                document.getElementById("previewPhoto").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod=scale)";
                document.getElementById("verifyPhoto").value = "Y";
            }
            else {
                alert("gif, jpg, jpeg 형식의 파일만 첨부 가능 합니다.");
                document.getElementById("verifyPhoto").value = "";
            }
        }
        function killPhoto() {
            if(!confirm("사진을 취소하시겠습니까?")) return;
            document.getElementById("filePhoto").outerHTML = document.getElementById("filePhoto").outerHTML;
            document.getElementById("verifyPhoto").value = "";
            document.getElementById("previewPhoto").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='noPhoto.gif',sizingMethod=scale)";
        }
    //-->
    </script>
</head>
<body>
    <!-- Thumbnail Crop -->
    <div style="overflow: hidden; width: 115px; height: 150px;">
        <!-- Thumbnail Container -->
        <div id="previewPhotoBox" style="width: 115px; height: 150px;">
            <!-- Thumbnail -->
            <div id="previewPhoto">
            </div>
        </div>
    </div>
    <div style="overflow: hidden; width: 1px; height: 1px;">
        <div id="previewPhotoTemp">
        </div>
    </div>
    <!--marga:verifyPhoto 값이 Y 일 때만 첨부파일 저장 로직을 실행 하세요-->
    <input type="hidden" id="verifyPhoto" />
    <input type="file" name="filePhoto" id="filePhoto" onchange="JavaScript:showPhoto(this.value);" />
    <input type="button" value="사진취소" onclick="JavaScript:killPhoto();" />
</body>
</html>
반응형

'Developer' 카테고리의 다른 글

Regular Expressions Cheat Sheet  (2) 2009.07.02
정규표현  (0) 2008.01.29
14 Tab-Based Interface Techniques  (0) 2007.04.18

Prototype 은 우리에게 보다 빠르고 현명하게(?) JavaScript를 사용할 수 있도록 도와준다.
하지만, 익숙치 않을때는 훌륭한 Framework의 기능을 충분히 끌어내지 못하는 경우가 많다.

이를 상기 시키기 위한 지침 'How well do you know prototype' 가 있다.
Prototype 초보 사용자 들에겐 유익한 포스트라 할 수 있겠다.

//바르지 못한 방법:
document.getElementById("foo ")
//적당한 방법: 놀랍게도 어떤 사람들은 이것에 대해 잘 모른다.
$("foo ")

//바르지 못한 방법:
var woot = document.getElementById("bar").value
var woot = $("bar").value
//적당한 방법: 폼 값의 편리하고 빠른 호출
var woot = $F("bar")

//바르지 못한 방법:
$('footer').style.height = '100px';
$('footer').style.background = '#ffc';
//적당한 방법: 모든 브라우저가 W3C의 권고를 따르고 있지 않다.
$('footer').setStyle({
height: '100px',
background: '#ffc'
})

//바르지 못한 방법:
$('coolestWidgetEver').innerHTML = 'some nifty content'
//적당한 방법:
$('coolestWidgetEver').update('some nifty content')
// 아래와 같은 문법 구사가 가능해 지므로
$('coolestWidgetEver').update('some nifty content').addClassName('highlight').next().hide()

//바르지 못한 방법:
new Ajax.Request('ninja.php?weapon1=foo&weapon2=bar')
//적당한 방법: 보기 좋으며 보다 나은 파라메터 구조 사용
new Ajax.Request('ninja.php', {
parameters: {
weapon1: 'foo',
weapon2: 'bar'
}
})

//바르지 못한 방법:
new Ajax.Request('blah.php', {
method: 'POST',
asynchronous: true,
contentType: 'application/x-www-form-urlencoded',
encoding: 'UTF-8',
})
//적당한 방법: 기본옵션은 생략하라!
new Ajax.Request('blah.php')

//바르지 못한 방법:
Event.observe('myContainer', 'click', doSomeMagic)
//적당한 방법: 논쟁의 여지가 있지만 객체지향적이다!
$('myContainer').observe('click', doSomeMagic)

//바르지 못한 방법:
$$('div.hidden').each(function(el){
el.show();
})
//적당한 방법: 슬프게도 이 사용법을 아는 사람들이 많지 않다는 사실.
$$('div.hidden').invoke('show')

//바르지 못한 방법:
$$('div.collapsed').each(function(el){
el.observe('click', expand);
})
//적당한 방법: invoke를 이용한 이벤트 핸들링, 졸라 쉽다!
$$('div.collapsed').invoke('observe', 'click', expand)

//바르지 못한 방법:
$$('input.date').invoke('observe', 'focus', onFocus);
$$('input.date').invoke('observe', 'blur', onBlur);
//적당한 방법: $$는 오버해드가 크기 때문에 invoke를 사용하면 $$를 여러번 사용할 필요도 없다.
$$('input.date').invoke('observe', 'focus', onFocus).invoke('observe', 'blur', onBlur)

//바르지 못한 방법:
$('productTable').innerHTML =
$('productTable').innerHTML +
'<tr><td>' + productId + ' '
+ productName + '</td></tr><tr><td>'
+ productId + ' ' + productPrice +
'</td></tr>'
//적당한 방법: Template 클래스는 정말 쓸만한 DOM 솔루션이다. 하지만 잘 사용되고 있지 않는 것 같다.
var rowTemplate = new Template('<tr><td>#{id} #{name}</td></tr><tr><td>#{id} #{price}</td></tr>');
$('productTable').insert(
rowTemplate.evaluate({
id: productId,
name: productName,
price: productPrice
}))
)


반응형
AJAX의 javascript에서 한글이 깨지는 현상을 고민하다가, 예전에 IIS 5.0에서 XMLHttpRequest 객체를
이용하여 비동기식 XML 통신을 구현했을 때 역시 한글처리 때문에 고민을 했었던 기억이 될살아 났다.

그 때 XMLHttpRequest 객체를 이용하여 통신할 때 한글 처리를 위해서는
"<?xml version='1.0' encoding='euc-kr' ?>" 태그는 필수 항목이었으며,
또한, ASP 페이지 내에서도 "Response.charSet = "euc-kr" 같이 charSet을
설정해 줘야 했었다.
              

AJAX (Asynchronous Javascript And Xml)의 단어에서도 알 수 있듯이 클라이언트와 서버간 통신을 위해서
javascript와 XMLHttpRequest를 사용할 수 밖에 없다.
그러므로,  AJAX 를 사용할 때도 charSet을 설정해 줘야 한글 문제를 처리할 수 있다.

[해결방법]
1. Web.config의 <system.web> 태그 안에 charSet을 정의한다.
   <system.web>    
         .......
         <globalization requestEncoding="euc-kr" responseEncoding="euc-kr"/>
         .......
  </system.web>

2. aspx 페이지에 charset 정의
   <meta http-equiv="Content-Type" content="text/html; charset=euc-kr;" />

3. ScriptManager에 Web.config에서 설정한 charset 사용을 허용한다.
    <asp:ScriptManager id="ScriptManager1" runat="server"
              EnableScriptGlobalization="True"
              EnableScriptLocalization="True">
             <Scripts>
                    <asp:ScriptReference Path="../js/common.js" />
              </Scripts>
    </asp:ScriptManager>

이렇게 하면 ScriptManager내에 있는 javascript의 한글 처리에 문제가 해결된다.


출처 : http://poco.egloos.com/392702
반응형


http://www.smashingmagazine.com/2008/04/15/60-more-ajax-and-javascript-solutions-for-professional-coding/


When it comes to design of modern web-applications, Ajax is considered as a standard approach. Interactive solutions for lightboxes, form validation, navigation, search, tooltips and tables are developed using Ajax libraries and nifty Ajax scripts. Ajax is useful and powerful. However, when using Ajax, one should keep in mind its drawbacks in terms of usability and accessibility. With an extensive use of Ajax, you can easily confuse your visitors offering too much control and too many features.

Nevertheless, it’s important to know what’s possible, particularly since you can develop new ideas further, improving the quality of your web applications. Since our last article 80+ AJAX-Solutions For Professional Coding many things have changed — new scripts were introduced, new creative solutions were developed, new robust development kits have been released. They all are supposed to serve a better user experience and provide more comfort for web-developers.

This post presents over 60 new useful Ajax scripts, libraries and solutions which you can use in your future projects. License agreements can change from time to time — please read them carefully before using the script in a commercial web-application.

You might want to consider checking out the following related posts:

Please notice: the overview presented below is not just a yet-another-one-collection of Ajax-scripts. It’s a collection of really useful ones, the ones you can use in almost every project you’ll be working on.



반응형

var str = "한글 <!-- 주석 --> <script type="text/javascript">window.alert('hellow')<\/script>";
 str += "<style type='text/css> td {font-size:9pt;}<\/style>";
 str += "<br /> <h3>Hellow Blog</h3>";


//태그제거
var RegExpTag = "<[^<|>]*>";
str = str.replace(RegExpTag,"");
//result : 한글 window.a lert('hellow'); td {font-size:9pt;} Hellow Blog


//스크립트 제거
var RegExpJS = "<script[^>]*>(.*?)</script>";
str = str.replace(RegExpJS,"");
//result : 한글 <!-- 주석 -->  <br> <h3>Hellow Blog</h3>


//스타일 제거
var RegExpCSS = "<style[^>]*>(.*?)";
str = str.replace(RegExpCSS,"");
//result : 한글 <!-- 주석 --> <script type="text/javascript">window.a lert('hellow');</script><br></style[^><h3>Hellow Blog</h3>


//한글 제거
var RegExpHG = "[ㄱ-ㅎ가-힣]";
str = str.replace(RegExpHG,"");
//result : <!-- 주석 --> <script type="text/javascript">window.a lert('hellow');</script><br><h3>Hellow Blog</h3>


//주석 제거
var RegExpDS = /<!--[^>](.*?)-->/g;
str6 = str.replace(RegExpDS,"");
//result : 한글 <script type="text/javascript">window.a lert('hellow');</script><br><h3>Hellow Blog</h3>


출처 : http://blueb.net/blog/1174
반응형
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    <script language="javascript">
        function ieExecWB( intOLEcmd, intOLEparam ) {
            //참고로 IE 5.5 이상에서만 동작함

            // 웹 브라우저 컨트롤 생성
            var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';

            // 웹 페이지에 객체 삽입
            document.body.insertAdjacentHTML('beforeEnd', WebBrowser);

            // if intOLEparam이 정의되어 있지 않으면 디폴트 값 설정
            if ( ( ! intOLEparam ) || ( intOLEparam < -1 ) || (intOLEparam > 1 ) )
                intOLEparam = 1;

            // ExexWB 메쏘드 실행
            WebBrowser1.ExecWB( intOLEcmd, intOLEparam );

            // 객체 해제
            WebBrowser1.outerHTML = "";
        }
    </script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
    <input type=button value="인쇄 미리 보기" onclick="window.ieExecWB(7)">
    <input type=button value="페이지 설정" onclick="window.ieExecWB(8)">
    <input type=button value="인쇄하기(대화상자 표시)" onclick="window.ieExecWB(6)">
    <input type=button value="인쇄 바로 하기" onclick="window.ieExecWB(6, -1)">
</body>
</html>
반응형
@charset "utf-8";
/* 반드시 들어가야 하는 스타일 시작 */
/* 1. 본문 전체  */
body{
    font: 12px/1.5 Dotum, Verdana, AppleGothic, Sans-serif;
    padding:20px 0;    
    color : #666;    
    background:/*@background-image=url(images/bg.gif)*/ url("images/bg.gif") /*@*/;
    /*@background-image-position=background-position:;*/ background-position: ; /*@*/
    /*@background-image-repeat=background-repeat:;*/ background-repeat: no-repeat; /*@*/
    background-color:/*@background-color=#ddd*/ #ddd /*@*/;
}
/* 2. 기본 링크 */
    a:link {
        text-decoration: none;
        color : #369;
    }
    a:visited {
        text-decoration: none;    
        color : #369;
    }
    a:hover {
        text-decoration: underline;    
        color : #666;
    }
    a:active {
        text-decoration: none;    
        color : #666;
    }    
/* 3. 이미지 */
    img {
        border-width: 0px;
    }
/* 4. 이미지 버튼 */
    .ib {
        cursor: pointer;
    }
/* 5. 입력 텍스트 */
    .text {
    border:1px solid #999;
    }
/* 6. 트리 테이블 */
    .branch2 {
    }
/* 7. 트리 셀 */
    .branch3 {
        cursor: pointer;
        height: 10px;
    }
/* 8. 달력 월 표시 */
    .cal_month {
        font-size : 11px;
        height: 18px;
    }
/* 9. 달력 요일 표시 */
    .cal_week1 {
        font-size : 11px;
        height:18px;
    }
/* 10. 달력 일요일 표시 */
    .cal_week2 {
        color: #f30;
        font-size:12px;
        text-align: center;
    }
/* 11. 달력 지난 달 날짜 표시 */
    .cal_day1 {
        color: #000;
        font-size:12px;
        text-align:center;
    }
/* 12. 달력 다음 달 날짜 표시 */
    .cal_day2 {
        color: #000;
        font-size : 11px;
        text-align: center;
    }
/* 13. 달력 이번 달 날짜 표시 */
    .cal_day3 {
        font-size : 11px;
        text-align: center;
    }
/* 14. 달력 오늘 날짜 표시 */
    .cal_day4 {
        text-align: center;
        font-size : 11px;
        background-color:#ccc;
        font-weight:bold;
    }
/* 15. 달력 글쓴 날 링크 스타일 */
    a.cal_click:link {
        font-weight: bold;
        color : #333;
    }
    a.cal_click:visited {
        font-weight: bold;
        color : #333;
    }
    a.cal_click:hover {
        font-weight: bold;
        color : #369;
    }
/* 16. 이미지 아래 캡션 스타일 */
    .cap1 {
        color: #876;
        text-align: center;
    }
/* 16. 키워드 스타일 */
    .key1 {
        cursor: pointer;
        border-bottom: 1px dotted #ccc;
    }
/* 16. 카테고리 옆 개수 스타일 */
    .c_cnt {
        font:9px Tahoma;
        color : #999;
    }
/* 17. 최신글 옆 개수 스타일 */
    .ps_cnt {
        font:10px Tahoma;
        color : #999;
    }

/* 반드시 들어가야하는 스타일 끝 - 이 아래는 자유롭게 추가, 삭제 가능 */
hr {
display:none;
}    
/* Structured */
#container {
    width:/*@post-width:240=*/ 940px /*@*/;
    background:url("images/bg_footer.gif") repeat-x bottom #fff;    
    border:1px solid #ccc;
    border-bottom:6px solid #ccc;    
    margin:0 auto;
    padding:20px;  
    background-color:#fff;
}
#content {                              /* 사이드바를 왼쪽으로 옮겨보세요 */
    float:left;
    margin-right:20px;    
    width:/*@post-width=*/ 700px /*@*/;
    overflow:hidden;
}
#sidebar {
    float:left;
    width:200px;
    margin-top:10px;
    border:5px solid #eee;
    padding:5px;
    overflow:hidden;    
}
#footer {
    clear:both;
}



/* header */
#header {
    padding: /*@title-height:-43=padding-top:*/ 30px /*@*/ 0 15px 60px;
    /*@title-background-image=background-image:url(images/bg_header.gif);*/ background-image: url("http://cfs.tistory.com/blog/style/template/image/title/4.jpg"); /*@*/
    /*@title-background-image-repeat=background-repeat:no-repeat;*/ background-repeat: repeat; /*@*/
    /*@title-background-image-position=background-position:;*/ background-position: center top; /*@*/
    /*@title-background-color=background-color:;*/ background-color: transparent; /*@*/
}
#header h1{
    margin:0;
    font-size:20px;
    float:left;
}
#header h1 a{
    font-size: /*@title-font-size=*/ 20px /*@*/;
    font-family:/*@title-font-family=*/ dotum /*@*/;
}
#header a{
    color:/*@title-color=*/ #fff /*@*/;     /* 헤더의 배경 이미지에 맞게 블로그 제목을 잘보이는 색으로 바꿔주세요 */
}
#header .sidemenu {
  padding:10px 35px 0 0;
    margin-left:400px;
    text-align:right;
}
#header .sidemenu a{
    padding-left:10px;
}




/* sidebar common*/
#sidebar ul{
    margin:0;
    padding:0;
    list-style:none;    
    }
#sidebar .name {
    font:11px dotum;
    color:#999;
}
#sidebar .date {
    font-size:12px;
    color:#999;    
}    
#sidebar .cnt {
    font :10px Tahoma;
    color:#333;
}
#sidebar h3 {      /* 사이드바의 제목을 바꿔보세요 */
    font:12px Tahoma;
    font-weight:bold;
    background:#eee;
    border-top:1px solid #ccc;
    padding:3px 5px;
    margin:0;
}    
#sidebar a {        /* 사이드바의 링크 색을 바꿔보세요 */
    color:#369;
}    
#sidebar .box {
    padding:8px;
}
/* admin menu */
#sidebar .owner {
    font-size:12px;
    text-align:center;
}
/* blog info (desc, image) */

#sidebar .blogimg {
    width:200px;
    overflow:hidden;
    text-align:center;
}
#sidebar .bloginfo {
    text-align:center;
}
#sidebar .bloginfo img{
    padding:5px;
}
/* notice list */
#sidebar .notice {
    padding:5px 10px;
    background-color:#eeeeee;    /* 사이드바의 공자사항 배경색을 바꿔보세요 */
    margin:5px 0;
}
#sidebar .notice li {
background:url(images/iconNotice.gif) no-repeat 0 50%;
padding-left:38px;
}
#sidebar .notice li a{
    font-size:12px;
    letter-spacing:-1px;
    color:#333;
}
/* search */
#sidebar .search {
    text-align:center;
    padding:5px 0;
}
#sidebar .search input{
    width:130px;
}
#sidebar .search .submit{
    border:1px solid #999;
    background-color:#ddd;
    font:11px Verdana;
    color:#222;
    width:50px;    
}
/* category, category_list*/
#sidebar .category .box li ul li ul li{
    list-style-image:none;
    padding-left:10px;
    margin-left:7px;
    border-left:1px dotted #999;
}
#sidebar .category .box a{
    font-size:12px;
    color:#333;
}
/* tag cloud*/
#sidebar .tagbox ul {
    padding:5px;
    text-align: justify;        
  }
#sidebar .tagbox a {
    letter-spacing:-1px;
    }    
#sidebar .tagbox li .cloud1 {       /* 사이드바의 태그 클라우드 스타일을 바꿔보세요 */
    background-color:#eee;
    font-weight:bold;
  font-size : 16px;
  color : #f30;
  }
#sidebar .tagbox li .cloud2 {
    background-color:#eee;
    font-weight:bold;    
  font-size : 15px;
  color : #f60;
  }
#sidebar .tagbox li .cloud3 {
    background-color:#eee;
    font-weight:bold;    
  font-size : 14px;
  color : #369;
  }
#sidebar .tagbox li .cloud4 {
    background-color:#eee;
  font-size : 13px;
  color : #690;
  }
#sidebar .tagbox li .cloud5 {
  font-size : 12px;
  color : #999;
  }    
#sidebar .tagbox a:hover{
    background-color:#cce5ff;
  color:#000;
  }    
/* recent posts, recent comment, recent trackback, archive, link */
#sidebar .listbox {
    padding:5px 0;
}
#sidebar .listbox ul {
    padding:5px 0;
    margin-left:3px;
}
#sidebar .listbox li {
    background:url(images/bul.gif) no-repeat 0 5px;
    line-height:16px;
    padding-left:8px;
}    
/* counter */
#sidebar .counter {
    background-color:#eee;
    padding:5px 0;
    text-align:center;
    font:10px verdana;
}
#sidebar .ad{
    text-align:center;
    padding:5px 0;
}




/* content common */
#content h2 a{    /* 글 제목의 스타일을 바꿔보세요 */
    font-size:18px;
    padding-top:10px;
    margin:0;
    /*@post-title-color=color:;*/ color: ; /*@*/ /*@post-title-font-family=font-family:;*/ font-family: inherit; /*@*/ /*@post-title-font-size=font-size:;*/ font-size: inherit; /*@*/
}
#content h2 a:hover{    /* post title mouseover*/
    text-decoration:none;
    color:#222;
    background:url(images/iconTitleLink.gif) no-repeat top right;
    padding-right:15px;
}
#content h3 {    /* tag, search, location, guestbook title */
    font-size:14px;
    color:#333;
    margin:10px 0;
    border-bottom:1px solid #ddd;    
    padding-bottom:5px;
}
#content ol, #content ul {
    list-style:none;
    padding:0;        
    margin:0;
}
#content .name {
    font-size:12px;
    color:#666;
    letter-spacing:-1px;
}
#content .cnt {
    font:10px Verdana;
    color:#666;
}
#content .date {
    font:10px Verdana;
    letter-spacing:-1px;    
    color:#666;    
}
#content cite {
    font-size:12px;
    font-style:normal;
    color:#666;
}
/* tag  */
#content .tagcloud ul {
    padding:5px;
    text-align:justify;        
  }
#content .tagcloud li {
    display:inline;
    }        
#content .tagcloud a:hover{
    background-color:#cce5ff;
  color:#000;
  }        
#content .tagcloud li .cloud1 {
    background-color:#eee;
    font-weight:bold;
  font-size : 16px;
  color : #f30;
  }
#content .tagcloud li .cloud2 {
    background-color:#eee;
    font-weight:bold;    
  font-size : 15px;
  color : #f60;
  }
#content .tagcloud li .cloud3 {
    background-color:#eee;
    font-weight:bold;    
  font-size : 14px;
  color : #369;
  }
#content .tagcloud li .cloud4 {
    background-color:#eee;
  font-size : 13px;
  color : #690;
  }
#content .tagcloud li .cloud5 {
  font-size : 12px;
  color : #999;
  }    

/* search list, rplist */    
#content .list, .rplist{
    margin-bottom:50px;
}
#content .list .date, .rplist .date{
    padding-right:8px;
}
/* location */
.location .spot {
    padding-left:30px;
    background:url("images/iconIndentArrow_local.gif") no-repeat 10px 2px;
    margin-bottom:3px;
    }    
.location .info {
    padding-left:15px;
    background:url("images/iconIndentArrow_localinfo.gif") no-repeat 0 50%;
    margin-bottom:3px;
    }    
/* guestbook > write */
.guestbook .write {
    margin-bottom:20px;
}
.guestbook .write p{
    padding:2px;
    margin:0;
}
.guestbook .write input{
    border:1px solid #999;
    height:18px;
    width:200px;
}
.guestbook .write .homepage{
    height:18px;
    width:400px;
}
.guestbook .write .submit{
    border:1px solid #aaa;
    background-color:#ddd;
    height:25px;
    width:98%;
    color:#333;
}
.guestbook .write label{
    font:10px Verdana;
}
.guestbook .write textarea{
    width:98%;
    height:150px;
    border:1px solid #aaa;    
    overflow:visible;
}
/* guestbook > list */
.guestbook p{
    padding:5px 0;
    margin:0;
}
.guestbook .list ol li{
    padding:10px 10px 10px 25px;
    background:url("images/iconGuestbook.gif") no-repeat 0 12px;    
}
.guestbook .list li ul li{
    padding-left:30px;
    margin-left:20px;
    background:url("images/iconIndentArrow_local.gif") no-repeat 10px 12px;
    background-color:#f5f5f5;
}
.guestbook .list .name a{
    font-size:12px;
    font-weight:bold;
    color:#666;
    padding-right:12px;
    background:url("images/icon_homepage.gif") no-repeat 0px right;
}
.guestbook .control a{
    font:9px tahoma;
    background:url("images/iconControl.gif") no-repeat center right;    
    padding-right:10px;
    color:#999;
    margin-right:5px;
}
.guestbook .control a:hover{
    background-color:#ddd;
    color:#333;
}
/* entry > notice */
.entry_notice {
    margin-bottom:30px;
    }
.entry_notice .article {
    padding:10px 0;
}    
/* entry > protected  */
.entry_protected {
    border-bottom:1px solid #ddd;
    margin-bottom:15px;
    }
.entry_protected h2 {
    color:#369;
}
.entry_protected input {
    border:1px solid #999;
    font:10px Tahoma;
}
.entry_protected .submit {
    border:1px solid #bbb;
    background-color:#ddd;
}

/* entry article*/
.entry .article {
    padding:10px 0;
    /*@post-body-color=color:;*/ color: ; /*@*/ /*@post-body-font-family=font-family:;*/ font-family: inherit; /*@*/ /*@post-body-font-size=font-size:;*/ font-size: inherit; /*@*/
}
.entry .article blockquote {
    border-left: 7px double #ccc;
    margin: 10px 10px 10px 20px;
    padding-left: 10px;
}    
.entry .article a{
    color:#369;
    border-bottom:1px dotted #999;
}    
#content .entry .article ul{
    padding:10px 30px;
    list-style-type:disc;
}    
#content .entry .article ol{
    padding:10px 30px;
    list-style-type:decimal;
}        
.entry .article a:hover{
    color:#369;
    text-decoration:none;
}    
/* entry top button*/
.entry .btn_top{
    text-align:right;
    margin-top:3px;
    clear:both;    
}
/* entry tag */
.entry .tagbox{
    padding:5px;
}
.entry .tagtext{
    font:9px verdana;
    font-weight:bold;
    background-color:#369;
    color:#fff;
    padding:1px 3px;
    margin-right:8px;
}
/* entry trackback, comment  */
.entry .tbrp_box {
    border-top:1px dotted #ccc;
    border-bottom:1px solid #999;
    padding:7px 8px;
    font:11px verdana;
}
.entry .tbrp_box .cnt{
    font:10px verdana;
    color:#666;
}
/* entry trackback */
.entry .trackback {
    font-family:verdana, dotum;
    background-color:#f5f5f5;
    padding:10px;
    margin-bottom:4px;
}    
.entry .trackback .add {
    margin:5px;
    font:11px Verdana;
    color:#333;
}    
.entry  .trackback li{
    border-top:1px dotted #ccc;
    padding:10px 0;
}
.entry .trackback h4{
    font:12px Verdana;
    font-weight:normal;
    margin:0;
}
/* entry comment */
.entry .comment {
    background-color:#f5f5f5;
    padding:10px;
}    
.entry .comment p{
    margin:0;
}    
.entry .comment ol li{
    padding:15px 10px 0 25px;
    background:url("images/iconGuestbook.gif") no-repeat 0 15px;        
}
.entry .comment li ul li{
    padding:15px 10px 0 25px;
    background:url("images/iconIndentArrow_local.gif") no-repeat 10px 12px;
    background-color:#f5f5f5;
}
.entry .control{
    font:11px dotum;
    color:#999;
    letter-spacing:-1px;
}
.entry .control a{
    font:11px dotum;
    color:#999;
}
.entry .control a:hover{
    background-color:#ddd;
    color:#333;
}
.comment .write {
    margin-bottom:20px;
}
.comment .write p{
    padding:2px;
    margin:0;
}
.comment .write input{
    border:1px solid #999;
    width:150px;
}
.comment .write .homepage{
    width:260px;
}
.comment .write .submit{
    border:1px solid #aaa;
    background-color:#ddd;
    height:25px;
    width:98%;
    color:#333;
}
.comment .write label{
    font:10px Verdana;
}
.comment .write textarea{
    width:98%;
    height:150px;
    border:1px solid #aaa;    
    overflow:visible;
}
.comment .write .checkbox{
    border:none;
    padding:0;
    margin:0;
    width:25px;
    }

/* paging */
.paging{
    padding-top:10px;
    text-align:center;
    font:10px Tahoma;
}

/* footer */
#footer {
    text-align:center;
    padding:50px 10px 10px 10px;
    font:11px Verdana, dotum;
}
반응형

'Developer > CSS & HTML' 카테고리의 다른 글

meta tag 기본정리  (0) 2010.10.29
검색엔진 노출방지 robots.txt & meata tag  (0) 2008.02.04
DOCTYPE 선언  (0) 2007.11.22
function trim11 (str) {
    str = str.replace(/^\s+/, '');
    for (var i = str.length - 1; i > 0; i--) {
        if (/\S/.test(str.charAt(i))) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    return str;
}
출처 : http://firejune.com/1280
반응형

'Developer > JavaScript' 카테고리의 다른 글

IE 인쇄시 설정버튼 제어  (0) 2008.02.21
Override window.alert()  (0) 2008.02.04
태그명 알아내기  (0) 2008.01.22
http://www.robotstxt.org/


로봇배제 표준이란?

로봇배제 표준이란 구글 등 검색로봇이 정보 수집을 위해 사이트를 방문할 경우를 대비하여, 검색로봇에 의한 웹 사이트의 디렉터리 및 파일들에 대한 검색 조건을 명시해 놓은 국제 규약이다.
정상적인 검색로봇은 사이트 방문 시 가장 먼저 웹사이트의 로봇배제 표준파일(robots.txt)을 확인하고 파일에 명시된 사항을 준수하면서 웹사이트의 컨텐츠를 수집한다.
※ 로봇배제 표준은 방지기술이 아닌 사이트 및 검색로봇 운영자간의 단순한 약속(규약)이므로 악의적인 로봇의 경우 로봇 배제 표준을 무시하고 사이트의 컨텐츠를 수집할 수도 있다.

/robots.txt 파일 내용

1. 홈페이지 전체 내용을 모든 검색엔진에 노출 허용

User-Agent : *
Disallow :

2. 홈페이지 전체 내용을 모든 검색엔진에 노출 방지

User-Agent : *
Disallow : /

3. 홈페이지의 디렉터리가 information인 것에 대한 노출을 방지

User-Agent : *
Disallow : /information/

4. 특정 검색엔진(googlebot)의 접근만을 거부

User-Agent : googlebot
Disallow: /
User-Agent: *
Disallow:

5. 특정 검색엔진(googlebot)의 접근만을 허가

User-Agent : googlebot
Disallow :
User-Agent : *
Disallow: /

6. 모든 검색엔진에 대해 /directory/index.html의 접근을 거부

User-Agent : *
Disallow : /directory/index.html

7. 홈페이지의 디렉터리가 information인 것에 대한 노출을 허가

User-Agent : *
Allow : /information/

8. 홈페이지의 디렉터리 또는 파일명이 information인 것에 대한 접근을 허가

User-Agent : *
Allow : /information


- User-Agent : '*' :모든 User-Agent, 특정 User-Agent 를 지정할 경우 해당 로봇 이름을 입력
- Allow or Disallow
Disallow에서 '/'는 모든 하위 문서에 대한 배제를 의미, 아무것도 쓰지 않으면 허가를 의미
'/...../'는 디렉터리만, '/....' 는 디렉터리+파일이 적용대상



- Meta Tag를 통한 노출방지

<html>
<head>
<title>...</title>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

</head>
noindex 면 그 페이지는 긁어가지 않습니다.
nofollow면 링크를 확인해서 긁어가는 것을 건너 뜁니다.

<META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW">
-이 문서는 긁어가지 말고 링크된 문서만 긁어감

<META NAME="ROBOTS" CONTENT="INDEX, NOFOLLOW">
-
이 문서도 긁어가고 링크된 문서도 긁어감

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

- 이 문서도 긁지 않고, 링크도 무시함



반응형

'Developer > CSS & HTML' 카테고리의 다른 글

Tistory CSS  (0) 2008.02.19
DOCTYPE 선언  (0) 2007.11.22
텍스트파일 내용을 테이블로 불러오기  (0) 2007.05.27
자바스크립트 함수 중 alert 이라는 함수를 override 하여 system modal window 가 아닌 layer 디자인을 통해 alert window를 만들어 사용할 수 있습니다. (window.confirm 도 바꿀 수 있겠죠.. ㅎㅎ )


 <!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/xhtml"> 
 <head> 
 <title> Override Alert </title> 
 </head> 
 <body> 
 <script type='text/javascript'> 
 /***
  * Description : override alert
  * Author : blueb(xblueb@gmail.com)
  * Date : 2008-02-04
  */
     window['alert'] = function(msg){    
         if( document.getElementById("alert") == null ){ 
             var cw = parseInt(document.documentElement.clientWidth); 
             var ch = parseInt(document.documentElement.clientHeight); 
  
             var _top = ch/2 - 50; 
             var _left = cw/2 - 150; 
  
              var div = document.createElement('div'); 
              div.id = "alert"; 
              div.style.width = "300px"; 
              div.style.height = "100px"; 
              div.style.border = "5px solid #000"; 
              div.style.fontSize = "9pt"; 
              div.style.zIndex = "100"; 
              div.style.position = "absolute"; 
              div.style.top = _top +"px"; 
              div.style.left = _left +"px"; 
              var layout = "<div style="text-align: center; margin-top: 20px; position: relative;" id="alert-msg">" + msg + "</div>"; 
              layout += "<div style="text-align: center; margin-top: 10px; bottom: 10px; position: absolute; width: 100%;"><a href="%5C%22javascript:void%28document.getElementById%28%27alert%27%29.style.display=%27none%27%29%5C%22">[close]</a></div>"; 
              div.innerHTML = layout; 
              document.body.appendChild(div); 
  
         }else{ 
             var cw = parseInt(document.documentElement.clientWidth); 
             var ch = parseInt(document.documentElement.clientHeight); 
  
             var _top = ch/2 - 50; 
             var _left = cw/2 - 150; 
  
              var div = document.getElementById("alert"); 
              div.style.top = _top +"px"; 
              div.style.left = _left +"px"; 
  
             document.getElementById("alert-msg").innerHTML = msg; 
             document.getElementById("alert").style.display = ""; 
         }
     }; 
 </script> 
 <a href="javascript:window.alert('Hello world')">click</a> 
 </body> 
 </html> 


system alert 과 같은 형태의 효과를 내기 위해서는 몇가지 더 추가 되어야 할 사항들이 있습니다. alert window가 발생된 시점에 content의 모든 영역에 click을 방지 하기 위해 투명 layer로 차단해줘야 겠죠 그외에도 몇가지 더 추가 해야 할 거 같습니다.


반응형

'Developer > JavaScript' 카테고리의 다른 글

자바스크립트 Trim 최적화  (0) 2008.02.11
태그명 알아내기  (0) 2008.01.22
JavaScript Submit Function  (0) 2007.08.02

자주 사용되는 패턴매칭

. 개행문자를 제외한 모든 문자
\n 개행문자
* 0혹은 그 이상의 일치
+ 한번 혹은 그 이상의 일치
? 0혹은 한번의 일치
^ 라인의 처음에서 일치
$ 라인의 끝에서 일치
a|b a 또는 b
(ab)+ ab와 하나이상 일치
[] 문자 클래스의 지정


패턴매칭의 사용 예

표현 매칭
abc abc
abc* ab abc abcc abccc ...
a(bc)+ abc abcbc abcbcbc ...
a(bc)? a abc
[abc] a b c
[a-z] a에서 z까지
[a\-z] a, -, z 중 하나
[a\-z] a, -, z 중 하나
[-az] -, a, z 중 하나
[a-zA-Z0-9]+ 하나이상의 모든 영문자와 숫자
[\t\n]+ whitespace 문자
[^ab] a와 b를 제외한 모든
[a^b] a, ^, b 중 하나
[a|b] a, |, b 중 하나

더 자세한 정보는 '여기' 에...
반응형

'Developer' 카테고리의 다른 글

Image Preview IE7  (3) 2008.05.13
14 Tab-Based Interface Techniques  (0) 2007.04.18
Online Converters  (0) 2007.04.10
document.getElementsByTagName

.....내 머리는 붕어


-Tag Count
document.getElementsByTagName("태그명").length

-Tag Item Value
document.getElementsByTagName("태그명").item(0).value

-Tag Item Focus
document.getElementsByTagName("태그명").item(0).focus();

.....내 머리속의 붕어
.....망할....OTL;;
반응형

'Developer > JavaScript' 카테고리의 다른 글

Override window.alert()  (0) 2008.02.04
JavaScript Submit Function  (0) 2007.08.02
자바스크립트 라이브러리의 종류와 특징  (0) 2007.06.22

OS : Windows 2003 Server
IIS Version : 6.0

include file 을 사용했을시
<!--#include file="../abc.asp"-->

(영문일 경우)
Active Server Pages, ASP 0131
Disallowed Parent Path
The Include file '../<filename .ext>' cannot contain '..' to indicate the parent directory.
/<path>/<filename .ext>, line <number>
</number></filename></path></filename>


(한글일 경우)
Active Server Pages 오류 'ASP 0131'
허용되지 않는 부모 경로
/asp/test.asp, 줄 1
'./../abc.asp' Include 파일은 부모 디렉터리를 표시하기 위해 '..'를 사용할 수 없습니다.



위와 같은 에러 메세지를 보게 됐을때는..

include 구문을 변경하거나

<!--#include file="../abc.asp"--> 를 <!--#include virtual="./lib/abc.asp"--> 로 변경


IIS 설정을 변경 해 준다.

(영문일 경우)
IIS -> Home Directory -> App Option -> Enable Parent Paths checkbox  체크


(한글일 경우)
IIS-> 웹사이트 속성 -> 홈디렉터리 -> 구성 -> 옵션 -> 부모경로사용 체크

관련내용 : http://support.microsoft.com/default.aspx?scid=kb;en-us;Q226474
반응형

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
FileSystemObject개체  (0) 2007.07.03
ASP FormatDateTime  (0) 2007.04.17
!DOCTYPE 선언은 XHTML문서가 갖추어야 될 필수 Element입니다. XHTML로 DTD 선언을 하지 않으면 그 문서는 XHTML 문서가 아닙니다. 뒤에나오는 XHTML 유효성 검사(XHTML Validation)를 하면 XHTML문서로 인정되지 않습니다. XHTML도 역시 HTML 4.01과 마찬가지로 다음과 같은 3가지 DTD를 선언할 수 있습니다. 아래의 3가지 중에 가장 많이 사용되며, 접근하기 쉬운 DTD는 Transitional mode 가 되겠습니다.

Strict Mode DTD
    * W3C에서 사실상 가장 권장하는 DTD 입니다. Strict 라는 단어의 뜻에서 알 수 있듯이 문법적인 오류를 전혀 허용하지 않는 DTD 선언입니다. 또한 문서를 꾸밀 때 배경색, 글자색 등을 모두 W3C의 CSS를 사용해야 되며, font, basefont 등의 Deprecated로 지정된 HTML Element의 사용 또한 금지됩니다. 예를 들어 글자색을 "red"로 지정하고 싶다면
          o <font color="red">Stric Mode</font> 와 같이 사용하면 안되고
          o <span style="color:red;">Stric Mode</span> 처럼 CSS를 사용해서 글자색을 지정해야 됩니다.
    * 또 한가지의 예로써 문서의 배경색을 'blue'로 지정하려면
          o <body bgcolor="blue">로 사용하면 안되고
          o <body style="background-color:blue;">로 사용해야 됩니다.
    * 사용법
          o <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-stric.dtd">


Transitional Mode DTD
    * Transitional Mode의 경우 XHTML 문법을 지키는 것은 마찬가지 이지만 Deprecated Element의 사용이 허용되며, body Element의 bgcolor, text 등의 Attribute를 사용할 수 있습니다.
    * 사용법
          o <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xthml1/DTD/xhtml1-Transitional.dtd">


Frameset Mode DTD
    * frameset Mode의 경우는 이 사이트의 경우처럼 브라우저 창을 2개 이상으로 분할하여 사용하고 싶을 때 Frameset페이지에 선언해 줍니다.
    * 사용법
          o <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.cor/TR/xhtml1/DTD/xhtml1-frameset.dtd">

 
XHTML 문서의 구성
    XHTML은 크게 나누어 아래의 3부분으로 이루어져 있습니다.
        * DOCTYPE 선언부분
        * Head 부분
        * body 부분
    위의 3 부분으로 기본적인 문서의 구조를 만들면 아래와 같습니다.

XHTML의 기본적인 문서 구조
<!DOCTYPE ...>
<html>
    <head>
        <title>... </title>
    </head>
    <body>... </body>
</html>

이중에서 DOCTYPE 선언(DTD 선언)은 항상 문서의 첫 부분에 나오게 되며 한 번 이상 선언할 수 없습니다.
좀 더 구체적인 문서의 예제
    위에서 설명한 DOCTYPE, head, body 의 3부분으로 아래의 간단한 문서를 만들어 보았습니다. 아래의 문서 예제에서는 Stict Mode DTD를 사용하였습니다. 이 DTD 선언 부분만 뺀다면 일반적인 HTML 문서와 같은 구조가 되겠습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stric//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>간단한 문서의 예제</title>
    </head>
    <body>
        <p>내용</p>
    </body>
</html>
반응형

/**
 * common function for search and submit.
 *
 * frm: ex) document.getElementById("[form id]");
 * url: target url. ex) my_list.jsp
 * method: "get" or "post". default is "get".
 *
 * goto(document.getElementById('frm'), 'my_list.jsp', 'get', 'ifr_content');
 */
function goto(frm, url, method, target) {
    if (method != "get" && method != "post") {
        method = "get";
    }
    if (target == null || target == "undifined" || target.length == 0) {
        target = "_self";
    }
    
    frm.action = url;
    frm.method = method;
    frm.target = target
    frm.submit();
}



반응형

'Developer > JavaScript' 카테고리의 다른 글

태그명 알아내기  (0) 2008.01.22
자바스크립트 라이브러리의 종류와 특징  (0) 2007.06.22
웹표준에 맞는 form 코딩법  (0) 2007.05.25

File관련 메소드


CopyFile(src,dest,over) : src 파일을 dest로 복사한다. 겹쳐쓰기 기능은 true가 기본값.


CreateTextFile(fname,over,unicode) : fname을 가진 텍스트 파일을 생성한다. over가 true면 겹쳐쓰기가 가능


DeleteFile(fname,force) : 현재의 파일을 삭제한다.force가 true면 해당 파일이 읽기 전용이라도 강제로 삭제


fileExists(fname) : 해당 파일의 존재 여부를 반환한다.


GetBaseName(fname) : 지정한 파일 경로와 확장자가 제거된 파일명을 반환한다.


GetExtensionName(fname) : 지정한 파일 확장자를 반환한다.


GetFile(fname) : 지정된 파일 경로에 해당하는 File 개체를 생성한다.


GetFileName(path) : 해당 경로에 지정된 파일명을 반환한다.


GetTempName() : 무작위로 생성된 파일명을 반환한다.


MoveFile(sec,dest) : src 경로의 파일을 dest로 옮긴다.


OpenTextFile(fname,io,create,format) : fname으로 된 텍스트 파일을 생성한다. io 값으로 모드를 선택한다.

1: 읽기 2 :쓰기 8 : 덧붙이기




FileSystemObject

*드라이브 정보 얻어 오기

Set fs = Sever.CreateObject("Scripting.FileSystemObject")

Set Cdrive = fs.GetDrive("c:")

Cdrive.freespace                                                                      =>드라이브의 잔여용량을 가져온다.

Cdrive.TotalSize                                                                       =>드라이브의 전체 용량

Cdrive.VolumeName                                                                  =>드라이브의 볼륨명

Cdrive.ShareName                                                                    =>드라이브의 네트워크 공유이름

Cdrive.SerialNumber                                                                  =>디스크 볼륨의 10진 시리얼 번호

Cdrive.RootFolder                                                                      =>드라이브의 루트폴더

Cdrive.Path                                                                               =>드라이브의 경로명               

Cdrive.FileSystem                                                                       =>드라이브의 파일 시스템

Cdrive.IsReady                                                                           =>드라이브의 준비여부(true/false)


*파일정보 얻어 오기

Set fs = Server.CreateObject("Scripting.FileSysteObject")

Set myfile = fs.GetFile("c:/config.sys")

myfile.Size                                                                                => 파일 크기

myfile.Type                                                                               => 파일 타입

myfile.Path                                                                                => 파일 경로

myfile.ShortName                                                                       => 파일 이름

myfile.ShortPath                                                                        => 파일 경로

myfile.ParentFolder                                                                    => 파일의 상위폴더

myfile.Name                                                                              => 파일 이름

myfile.Drive                                                                               => 파일 위치 드라이브명

myfile.DateCreated                                                                     => 파일만들어진 날짜 시간

myfile.DateLastAccessed                                                            => 마지막 액세스된 날짜 시간

myfile.DateLastModified                                                              => 마지막 수정일


*파일생성하기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.CreateTestFile("c:\a\b.txt",true,false)                =>전체경로,덮어쓰기여부,유니코드orASCII코드인지

objFile.FileExists("c:\a\b.txt")                                                 =>파일의 존재 여부 체크 존재하면true 그렇지 안으면 false

objFile.DeleteFile("c:\a\b.txt")                                                 =>파일 지우기


*파일에 글쓰기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",8,true,-1)

=>전체 경로, 1이면 읽기전용 8이면 쓰기가능, true이면 없을경우 새로 생성 false이면 무조건 말일 존재,파일포맷

   첫번째인자만 필수이고 나머지 생략가능  -- Set objFile = fs.OpenTextFile("c:\a\b.txt",8)이런식으로 많이 사용,


*파일에서 글 읽어 오기

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = fs.OpenTextFile("c:\a\b.txt",1)       =>글을 읽어 올때는 읽기전용(1) 값으로 반드시 셋팅한다.


Do While objFile.AtEndOfStream<>true                 =>AtEndOfStream은 글의 끝부분에 도달하면 ture를 return한다

       Response.write objFile.readLine & "<br>"     =>글은 한줄씩 읽어 온다.

loop


content = objFile.readall                                  =>글 전체를 읽어 온다.

str = replace(content,chr(13)&chr(10),"<br>")    =>replace(전체문자열,바꾸고자하는것,바꿀문자) chr(13)&chr(10)는 Enter이다

Response.write str


write                          =>파일에 문자열을 입력

writeLine                    => 파일에 문자열과 엔터값(라인)을 입력

WriteBlankLine(i)         =>파일에 i개의 엔터값을 입력

Read(i)                      =>파일에서 i개의 문자만을 읽어온다

ReadLine                   =>파일에서 한라인을 읽어온다

ReadAll                      =>파일에서 모든 텍스트를 읽어온다

Skip(i)                       =>파일에서 i개 만큼 문자를 건너뛴다

SkipLine                    =>파일에서 읽어올때 라인하나를 건너뛴다.

반응형

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
ASP FormatDateTime  (0) 2007.04.17
Fire June 님이 웹어플리케이션 컨퍼런스 2007에서 발표한 JavaScript Library 의 종류와 특징이라는 주제의 발표 자료다.
Ajax를 사용하기 위해서는 JavaScript Library 거의 필수가 되버린 상황에 여러 Library 중 무엇을 써야 하는가를 선택하는 것은 성능과 직결되는 문제.
프리젠테이션 발표자료 인지라 대표적 Library 들을 간략하게 설명하고 있지만, 주옥같은 자료라고 할 수있다.. ㅜ_ㅜ)b


위 파워포인트 자료에는 각 라이브러리 배포사이트의 스크린샷에 링크가 있으며, 슬라이드 노트에 발표내용을 포함하고 있다.

원문 : http://firejune.com/1109
반응형

'Developer > JavaScript' 카테고리의 다른 글

JavaScript Submit Function  (0) 2007.08.02
웹표준에 맞는 form 코딩법  (0) 2007.05.25
5가지 시계 표기 법  (0) 2007.05.25
지금 소개하는 방법은 서버에 txt파일을 CGI프로그램의 도움이 없이도 항상 동적으로 불러서 화면에 출력해주는 Active X의 활용방법입니다. 즉, 웹서버측에 다음과 같은 table_list.txt 파일이 있고, 이를 자동으로 테이블로 구성하여 보여줍니다.

table_list.txt 파일의 구성내용은 아래와 같습니다.
no,성별,이름,나이,주소,전화번호
1,남,홍길동,30,광주광역시 동구,062-444-1111
2,여,유관순,32,전라남도 여수시,061-777-7777
3,남,이순신,45,서울특별시 강남구,02-111-0000
4,여,심청이,23,서울특별시 동작구,011-600-0000
5,남,심봉사,55,경상남도 마산시,016-555-0000
6,남,대통령,77,강원도 춘천시,011-000-0000

NO. 성별 이름 나이 주소 전화번호
1
홍길동
30
광주광역시 동구
062-444-1111
2
유관순
32
전라남도 여수시
061-777-7777
3
이순신
45
서울특별시 강남구
02-111-0000
4
심청이
23
서울특별시 동작구
011-600-0000
5
심봉사
55
경상남도 마산시
016-555-0000
6
대통령
77
강원도 춘천시
011-000-0000

<object classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" width="1" height="1" id="clist" border="0">
<param name="DataURL" value="/SRC/javascript/table_list.txt">
<param name="UseHeader" value="True">
</object>

<center>
<table border=0 cellpadding=3 width=450 cellspacing=1 bgcolor=999999 datasrc="#clist">
<THEAD>
   <tr align=center bgcolor=efefef>
     <td><b>NO.</b></td>
     <td><b>성별</b></td>
     <td><b>이름</b></td>
     <td><b>나이</b></td>
     <td><b>주소</b></td>
     <td><b>전화번호</b></td>
   </tr>
</THEAD>
<TBODY>
   <tr bgcolor=white align=center>
     <td><DIV DATAFLD="no"></DIV></td>
     <td><DIV DATAFLD="성별"></DIV></td>
     <td><DIV DATAFLD="이름"></DIV></td>
     <td><DIV DATAFLD="나이"></DIV></td>
     <td><DIV DATAFLD="주소"></DIV></td>
     <td><DIV DATAFLD="전화번호"></DIV></td>
   </tr>
</TBODY>
</table>

반응형

'Developer > CSS & HTML' 카테고리의 다른 글

검색엔진 노출방지 robots.txt & meata tag  (0) 2008.02.04
DOCTYPE 선언  (0) 2007.11.22
70 Expert Ideas For Better CSS Coding  (0) 2007.05.11
orm 코딩시 발생되는 margin 을 없애기 위해 대부분 아래의 `틀린 코딩법`으로 코딩을 한다.
이는 표준에 위반되는 행위이며 스크립트로 form 을 제어 할 수 없는 위험한 상태까지 가게 된다.
따라서 표준 브라우져에서 가능하려면 아래의 `올바른 코딩법`으로 코딩하기 바란다.

form 에 대한 margin 값을 없애기 위해
<style type='text/css'>
form {
margin:0;
}
</style>
을 꼭 추가 하기 바란다.


틀린 코딩법
<table>
<form><tr><td><inpu type='text'></td></tr></form>
</table>


올바른 코딩법
<form>
<table><tr><td><input type='text'></td></tr></table>
</form>


자바스크립에서 표준에 맞도록 image, form, input element에  접근하기 위해서는 아래와 같이 사용하기 바란다.

document.images['bar'] // name 이 있는 경우
document.images[0]
document.images[1]
document.forms['execform'] //name 이 있는 경우
document.forms[0].elements['addr']
document.forms[0].elements[0]



반응형
<HTML> 
<HEAD> 
<TITLE> JASKO Sample<span class="key1" onclick="keyword_open('/kview.php?kd=+Script')"> Script</span> </TITLE> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 

window.status="로딩중..." 

function timeNow() 
{ 
now = new Date() 
var hours = now.getHours() 
var minutes = now.getMinutes() 
var seconds = now.getSeconds() 
var ap = "오전" 
  if (hours > 12) 
      {var ap = "오후" , hours = hours-12 ;} 
  if (minutes < 10) 
      {minutes = "0"+minutes} 
  if (seconds < 10) 
      {seconds = "0"+seconds} 

/********************** 상태바 시계 *******************/ 
window.status = hours+":"+minutes+":"+seconds+" "+ap 
/********************** 상태바 시계 *******************/ 

/********************* 텍스트 상자 시계 ************************/ 
document.time.clock.value = hours+":"+minutes+":"+seconds+" "+ap 
document.time.clock.size = document.time.clock.value.length 
/********************* <span class="key1" onclick="keyword_open('/kview.php?kd=%ED%85%8D%EC%8A%A4%ED%8A%B8+')">텍스트 </span>상자 시계 ************************/ 

/************************* 버튼 시계 *****************************/ 
document.time.butclock.value = hours+":"+minutes+":"+seconds+" "+ap 
/************************* 버튼 시계 *****************************/ 

/********************* 타이틀 바 시계 ***************/ 
document.title = hours+":"+minutes+":"+seconds+" "+ap 
/********************* 타이틀 바 시계 ***************/ 

setTimeout("timeNow()",1000) 

} 

function timeAlert() 
{ 
now = new Date() 
var hours = now.getHours() 
var minutes = now.getMinutes() 
var seconds = now.getSeconds() 
var ap = "오전" 

  if (hours > 12) 
      {var ap = "오후" , hours = hours-12 ;} 
  if (minutes < 10) 
      {minutes = "0"+minutes} 
  if (seconds < 10) 
      {seconds = "0"+seconds} 
alert(hours+":"+minutes+":"+seconds+" "+ap) 
} 

// --> 
</SCRIPT> 

</head> 

<body onLoad="timeNow()"> 
<CENTER><H3>다섯가지 시계표기법</H3></CENTER> 

<p align=center> 
<form name=time> 
<input name=clock size=10 value="로딩 중입니다..."> 
<input type=button name=butclock value="로딩 중입니다..."> 
<input type=button name=showTime value=" 시계 보기 " onClick="timeAlert()"> 

</form> 

<TABLE width=50% align=center bgcolor=teal> 
<TR> 
<TD bgcolor=ivory> 
<LI>1번째 : 제목표시줄 
<LI>2번째 : 상태표시줄 
<LI>3번째 : 텍스트상자 
<LI>4번째 : 버튼 
<LI>5번째 : 버튼클릭후 팝업 

</TD> 
</TR> 
</TABLE> 
</body> 
</html> 
반응형

'Developer > JavaScript' 카테고리의 다른 글

웹표준에 맞는 form 코딩법  (0) 2007.05.25
한줄로 끝내는 롤오버마우스 스크립트  (0) 2007.05.25
랜덤 이미지 출력  (0) 2007.05.25
<a href='#' onmouseover='Image01.src="바뀔이미지명"' onmouseout='Image01.src="원래이미지명"'>
<img src='원래이미지명' name='Image01'>
</a>


<script>~</script>
같은건 필요없습니다.


아래같은 형태로도 가능합니다.
<table> 
<tr>
    <td background="원래이미지" onmouseenter="Image01.style.visibility='visible';"
onmouseleave="Image01.style.visibility='hidden';">
    <img id="Image01" src="바뀔이미지" style="visibility:hidden;">
   </td>
</tr>
</table>
출처 : http://firejune.com/94&ct1=8&ct2=42
반응형
<script> 
// 2개의 이미지 경로
var images = new Array("./images/my1.gif","./images/sea.gif",);

// 추가한 수만큼 고침
var index = Math.round(Math.random * 2);

document.write("<img width=130 name='image" + i + "' src='" + images [i] + "'></img>");
</script>
반응형

+ Recent posts