์ผ๋‹จ ํ•˜๊ณ  ๋ณด๋Š” ์‚ฌ๋žŒ

๋‚˜์ค‘๋ณด๋‹จ ์ง€๊ธˆ์— ์ง‘์ค‘ํ•˜๋˜, ์ง€๊ธˆ๋ณด๋‹จ ๋‚˜์ค‘์— ์™„๋ฒฝํ•ด์ง€์ž๐Ÿ’ช๐Ÿป

๐Ÿ“ˆ ๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž Level Up Log

[IE to Chrome/Edge] ๋ธŒ๋ผ์šฐ์ € ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: CSS/JS ํ˜ธํ™˜์„ฑ(easyํŽธ)

JanginTech 2026. 9. 8. 00:07

๊ธฐ์กด์— Internet Explorer(IE) ๊ธฐ์ค€์œผ๋กœ ๋งž์ถฐ์ ธ ์žˆ๋˜ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ/UI ์š”์†Œ๋“ค์„ Chrome/Edge ์ „ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋๋‹ค.

๊ฐ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ์Šคํƒ€์ผ ์ฐจ์ด์™€ CSS ์„ ํƒ์ž/์ „์—ญ ๊ฐ์ฒด ์˜์กด์„ฑ ๋•Œ๋ฌธ์— ์ƒ๊ฐ๋ณด๋‹ค ๋‹ค์–‘ํ•œ UI ๊นจ์ง๊ณผ JS ์˜ค๋ฅ˜๋ฅผ ๋งˆ์ฃผ์น˜๊ณ  ์žˆ๋Š” ์ค‘์ด๋‹ค

์ง€๋‚œ์ฃผ ์ž‘์—…์—์„œ ์ง๋ฉดํ–ˆ๋˜ ๋Œ€ํ‘œ์ ์ธ ์ด์Šˆ๋“ค๊ณผ ์›์ธ, ๊ทธ๋ฆฌ๊ณ  ํ•ด๊ฒฐ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค

 

1. ์ „์—ญ event ๊ฐ์ฒด ์ฐธ์กฐ๋กœ ์ธํ•œ JavaScript ์˜ค๋ฅ˜

๋ฌธ์ œ: ๋ธŒ๋ผ์šฐ์ € ์ „ํ™˜ ํ›„ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ์™ธ๋ถ€๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ฝ˜์†”์— ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ๋‹ซํž˜ ๋กœ์ง์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค

Uncaught TypeError: Failed to execute 'contains' on 'Node': parameter 1 is not of type 'Node'

 

์›์ธ: ๊ธฐ์กด ์ฝ”๋“œ์—์„œ๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›์ง€ ์•Š๊ณ  ์žˆ์—ˆ๋‹ค

  • IE ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋˜ ์ „์—ญ event ๊ฐ์ฒด๋ฅผ ์•”๋ฌต์ ์œผ๋กœ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค
  • Chrome/Edge์—์„œ๋Š” ๋‹ค๋ฅด๋‹ค. ์ „์—ญ event ์ฐธ์กฐ ์‹œ ์˜๋„์น˜ ์•Š์€ ๊ฐ์ฒด๋‚˜ undefined๊ฐ€ ์ „๋‹ฌ๋˜์–ด contains() ๋ฉ”์„œ๋“œ์—์„œ ํƒ€์ž… ์—๋Ÿฌ๋ฅผ ์ผ์œผํ‚จ๋‹ค.

ํ•ด๊ฒฐ: event ๋ช…์‹œ

 

2. Placeholder ์Šคํƒ€์ผ ๋จนํ†ต ํ˜„์ƒ

๋ฌธ์ œ: Chrome์—์„œ Placeholder ์ƒ‰์ƒ ์Šคํƒ€์ผ์ด ์•ˆ ๋จนํž˜

์›์ธ: IE ์ „์šฉ ์„ ํƒ์ž์ธ :-ms-input-placeholder๋งŒ ๋‹จ๋… ์„ ์–ธ๋˜์–ด ์žˆ์–ด Chrome์ด ๊ตฌ๋ฌธ์„ ๋ฌด์‹œํ•œ ๊ฒƒ์ด ์›์ธ์œผ๋กœ ๋ณด์ธ๋‹ค

ํ•ด๊ฒฐ: ํ‘œ์ค€ ์„ ํƒ์ž์ธ ::placeholder๋ฅผ ๊ฐ™์ด ์ฑ™๊ฒจ์ค€๋‹ค

 

3. <select> ๋ฐ•์Šค ํ™”์‚ดํ‘œ๊ฐ€ ์‚ฌ๋ผ์ง

๋ฌธ์ œ: ์…€๋ ‰ ๋ฐ•์Šค ํ™”์‚ดํ‘œ๊ฐ€ ์•ˆ ๋ณด์ž„ & ์ด๋ฏธ์ง€ ์„ค์ •ํ–ˆ๋Š”๋ฐ ์•ˆ ๋ณด์ž„

์›์ธ: appearance: none์œผ๋กœ ๊ธฐ๋ณธ ํ™”์‚ดํ‘œ๋ฅผ ๋‚ ๋ ธ๊ณ (IE์—์„  ์•ˆ ์˜ˆ๋ป์„œ ์ปค์Šคํ…€ ์ ์šฉํ•˜๋А๋ผ ๋””ํดํŠธ๋ฅผ ์ฃฝ์ž„), ์ด๋ฏธ์ง€๋Š” IE์—์„œ๋งŒ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ์˜€์Œ

ํ•ด๊ฒฐ: to-be ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ํ™”์‚ดํ‘œ๋ฅผ ์‚ด๋ฆฌ๊ณ , ์ปค์Šคํ…€ ์ด๋ฏธ์ง€๋ฅผ ๋ช…์‹œ

 

4. Disabled <textarea> ํšŒ์ƒ‰ ๋ฐฐ๊ฒฝ ๋ฌป์–ด๋‚จ

๋ฌธ์ œ: Chrome์œผ๋กœ ์˜ค๋‹ˆ ๋น„ํ™œ์„ฑํ™”(disabled) ์˜์—ญ์— ๋œฌ๊ธˆ์—†์ด ์–ด๋‘์šด ํšŒ์ƒ‰ ๋ฐฐ๊ฒฝ์ด ๊น”๋ฆผ

์›์ธ: Chrome์˜ ๊ธฐ๋ณธ textarea:disabled๊ฐ€ ๋ฐฐ๊ฒฝ์ƒ‰ ๋Œ€์ถฉ ํšŒ์ƒ‰์ž„. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๋ถ€์ƒ ์–ด๋””์„œ ๊ฐ€๋กœ์ฑ„์„œ ์ฃผ๊ณ  ์žˆ์—ˆ์Œ;;(์ฐ์–ด๋ณด๋‹ˆ ๋”ฑ ์ด ์ƒ‰๊น”์ž„)

ํ•ด๊ฒฐ: ์ปค์Šคํ…€ ํด๋ž˜์Šค๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ

 

5. ์ž…๋ ฅ ์˜์—ญ ํด๋ฆญํ•  ๋•Œ ์ƒ๊ธฐ๋Š” ๊ฒ€์€์ƒ‰/ํŒŒ๋ž€์ƒ‰ ํ…Œ๋‘๋ฆฌ (Focus Outline)

๋ฌธ์ œ: ์ž…๋ ฅ์ฐฝ ํด๋ฆญ ์‹œ IE์—” ์—†๋˜ ๋‘๊บผ์šด ํ…Œ๋‘๋ฆฌ๊ฐ€ ๋…ธ์ถœ๋จ

์›์ธ: Chrome ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ์ ‘๊ทผ์„ฑ ํฌ์ปค์Šค ์Šคํƒ€์ผ(outline)์ด ๋ฐœ๋™ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž„

ํ•ด๊ฒฐ : outline์„ ๋„๊ณ  ๋””์ž์ธ์— ๋งž๋Š” border๋ฅผ ์ง์ ‘ ์ œ์–ด

 
 
 
-
 
์“ฐ๊ณ ๋‚˜๋‹ˆ ๋ณ„๊ฑฐ์—†๋„ค..