<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
  <title type="html">아즈키의 개발블로그</title>
  <id>http://dev.azki.org/</id>
  <link rel="alternate" type="text/html" hreflang="ko" href="http://dev.azki.org/" />
  <subtitle type="html">위아래 동서남북 감정 다막아놓고 뭔 프로그래밍을 하겠다는건데? 그냥 니본능대로하란말이야! 오기, 독기, 싸우고, 덤비고, 터뜨리라고!!</subtitle>
  <updated>2008-12-09T19:40:50+09:00</updated>
  <generator>Textcube 1.7.6 : Staccato</generator>
  <entry>
    <title type="html">apply Style Sheet rules</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/apply-Style-Sheet-rules" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/28" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/apply-Style-Sheet-rules</id>
    <updated>2008-12-01T13:50:36+09:00</updated>
    <published>2008-12-01T13:50:31+09:00</published>
    <summary type="html">&lt;P&gt;스타일 적용시에는 styleSheet 오브젝트의 (document.styleSheets : Array) 메소드를 사용하는데,&lt;BR&gt;&lt;STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;IE 에서는 addRule 을 사용&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/STRONG&gt;인자값을 3개(필수3개)로,&lt;BR&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;0번 argument에는 선택자(&#039;div&#039;, &#039;p&#039; 등..)를 넣고,&lt;/LI&gt;
&lt;LI&gt;1번 argument에는 스타일 명령(&quot;color:blue&quot;, &quot;overflow:hidden&quot; 등..)을 넣는다.&lt;/LI&gt;
&lt;LI&gt;2번 argument에는 0부터 시작하는 pages 컬렉션(document.styleSheets[?].pages : Array)에서의 위치할 인수를 넣는다. (-1을 넣으면 제일 뒤에 위치하게 된다.)&lt;BR&gt;반환값은 항상 -1이다. (주의: 오류가 없어도 -1을 반환)&lt;BR&gt;&lt;STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;FF 에서는 insertRule 를 사용&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/STRONG&gt;인자값은 2개(필수2개)로,&lt;BR&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;0번 argument에는 스타일 명령을 선택자를 포함하여 넣는다. (예: &quot;#myTable {-moz-user-select:none}&quot;)&lt;/LI&gt;
&lt;LI&gt;1번 argument에는 0부터 시작하는 cssRules 컬렉션(document.styleSheets[?].cssRules : Array)에서의 위치할 인수를 넣는다. (주의: addRule과는 다르다, -1 인자값을 넣으면 에러가 난다.)&lt;BR&gt;반환값은 cssRules 컬렉션에서의 위치한 위치값이다.&lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;ps. 아즈키네 2번째 블로그 옛글중에 가져옴 (&lt;A href=&quot;http://2.azki.org/182&quot;&gt;http://2.azki.org/182&lt;/A&gt;)&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">javascript 막코딩으로 flip 효과 시도 (뒤집는 효과)</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/javascript-%EB%A7%89%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C-flip-%ED%9A%A8%EA%B3%BC-%EC%8B%9C%EB%8F%84-%EB%92%A4%EC%A7%91%EB%8A%94-%ED%9A%A8%EA%B3%BC" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/27" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/javascript-%EB%A7%89%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C-flip-%ED%9A%A8%EA%B3%BC-%EC%8B%9C%EB%8F%84-%EB%92%A4%EC%A7%91%EB%8A%94-%ED%9A%A8%EA%B3%BC</id>
    <updated>2008-11-21T10:30:17+09:00</updated>
    <published>2008-11-18T17:56:12+09:00</published>
    <summary type="html">자바스크립트 막코딩으로 (특별한 animation/effect 라이브러리 사용 없이) 뒤집는 효과를 구현해 보았습니다&lt;br&gt;&lt;br&gt;구현을 위주로 엉망으로 짠 코드라&amp;nbsp; 부끄럽지만, 올리고 봅니다.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;url&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://fliptest.azki.org/proto.html&quot; target=&quot;_blank&quot;&gt;http://fliptest.azki.org/proto.html&lt;/a&gt;&lt;br&gt;(상수값으로 효과를 만들어본 첫번째 버전)&lt;br&gt;&lt;a href=&quot;http://fliptest.azki.org/&quot; target=&quot;_blank&quot;&gt;http://fliptest.azki.org/&lt;/a&gt;&lt;br&gt;(몇가지 변수를 적용할 수 있는 두번째 버전)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;소개&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;4각형과 3각형의 조합으로 접히는 효과를 내보았습니다.&lt;br&gt;실제 flip 과정중 캡쳐화면입니다.&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1306047351.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;151&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;그리고 element 의 구성은 3가지로 이루어져 있습니다.&lt;br&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1363712799.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;151&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;왼쪽 삼각형과 오른쪽 삼각형이 입체적으로 착각하도록 할 수 있습니다.&lt;br&gt;&lt;br&gt;삼각형을 만드는 방법은 참고사이트중 &lt;a href=&quot;http://www.uselesspickles.com/triangles/demo.html&quot; target=&quot;_blank&quot;&gt;Triangles in Javascript&lt;/a&gt; 에 자세하게 나와있습니다.&lt;br&gt;&lt;blockquote&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1393872029.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;296&quot; width=&quot;328&quot; /&gt;&lt;/div&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;참고 사이트&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://lab.smashup.it/flip/&quot; target=&quot;_blank&quot;&gt;http://lab.smashup.it/flip/&lt;/a&gt;&lt;br&gt;(Flip!0.4 - A jQuery plugin)&lt;br&gt;&lt;a href=&quot;http://www.uselesspickles.com/triangles/demo.html&quot; target=&quot;_blank&quot;&gt;http://www.uselesspickles.com/triangles/demo.html&lt;/a&gt;&lt;br&gt;(Triangles in Javascript)&lt;br&gt;&lt;a href=&quot;http://www.xentrik.net/css/filters.php&quot; target=&quot;_blank&quot;&gt;http://www.xentrik.net/css/filters.php&lt;/a&gt;&lt;br&gt;(CSS Filters)&lt;br&gt;&lt;br&gt;&lt;br&gt;ps.&lt;br&gt;참고사이트중 &lt;a href=&quot;http://lab.smashup.it/flip/&quot; target=&quot;_blank&quot;&gt;Flip!0.4 - A jQuery plugin&lt;/a&gt; 에서 처음 flip 효과를 보았는데,&lt;br&gt;그 flip 은 Opera browser 를 지원하지 못합니다. 제가 만든 것은 됩니다 :]&lt;br&gt;테스트 한 브라우저 목록입니다.&lt;br&gt;&lt;ul&gt;&lt;li&gt;FF2, FF3&lt;/li&gt;&lt;li&gt;IE6, IE7, IE8&lt;/li&gt;&lt;li&gt;Opera 9&lt;/li&gt;&lt;li&gt;safari 3 (windows)&lt;/li&gt;&lt;li&gt;Chrome 0.3&lt;/li&gt;&lt;/ul&gt;</summary>
  </entry>
  <entry>
    <title type="html">자바스크립트로 마우스 휠 (mousewheel) 움직임 체크.</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%EB%A7%88%EC%9A%B0%EC%8A%A4-%ED%9C%A0-mousewheel-%EA%B5%AC%ED%95%98%EA%B8%B0" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/22" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%EB%A7%88%EC%9A%B0%EC%8A%A4-%ED%9C%A0-mousewheel-%EA%B5%AC%ED%95%98%EA%B8%B0</id>
    <updated>2008-10-30T11:15:12+09:00</updated>
    <published>2008-10-30T11:05:55+09:00</published>
    <summary type="html">등록 부분&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;initialize: function(id, container){&lt;br /&gt;&amp;nbsp; &amp;nbsp; (...)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; var thisP = this;&lt;br /&gt;&amp;nbsp; &amp;nbsp; AzLib.Event.observe(&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._element, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AzLib.Browser.Gecko ? &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;DOMMouseScroll&quot; : &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;  &quot;mousewheel&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; function(e){&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; thisP.__event_mouseWheel(e);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; (...)&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;콜백 부분&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;__event_mouseWheel: function(e){&lt;br /&gt;&amp;nbsp; &amp;nbsp; AzLib.Event.stop(e);&lt;br /&gt;&amp;nbsp; &amp;nbsp; var delta = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (e.wheelDelta) { /* IE, Opera, Safari, Chrome */&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delta = -e.wheelDelta / (AzLib.Browser.Chrome? 360: 120);&lt;br /&gt;&amp;nbsp; &amp;nbsp; } else if (e.detail) { /* Gecko */&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delta = e.detail / 3;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; this._verticalScrollbar.stepPosition(delta * this.wheelRowCount);&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;mouse wheel 관련 자료를 찾아보니 살짝? 오동작도 하고 크롬 브라우저에 대한 처리가 안되어있어 수정하여 적용중인 코드.&lt;br /&gt;&lt;br /&gt;IE6, IE7, IE8beta, FF2, Opera9, Safari3, Chrome0.2 에서 테스트 됨.&lt;br /&gt;</summary>
  </entry>
  <entry>
    <title type="html">JSON 2 Table v 1.01 제이슨 데이타를 테이블로 출력합니다</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/JSON-2-Table-v-101-%EC%A0%9C%EC%9D%B4%EC%8A%A8-%EB%8D%B0%EC%9D%B4%ED%83%80%EB%A5%BC-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%A1%9C-%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/19" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/JSON-2-Table-v-101-%EC%A0%9C%EC%9D%B4%EC%8A%A8-%EB%8D%B0%EC%9D%B4%ED%83%80%EB%A5%BC-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%A1%9C-%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4</id>
    <updated>2008-07-02T15:22:45+09:00</updated>
    <published>2008-07-02T09:18:56+09:00</published>
    <summary type="html">다른 팀의 업무를 도와주며 한두시간의 시간을 투자해서 만든 프로그램입니다.. (그런데 사용할 일이 사라져서 빛을 보지도 못한 프로그램입니다;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;URL&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://json2table.azki.org/&quot; target=&quot;_blank&quot;&gt;http://json2table.azki.org/&lt;/a&gt; 입니다&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;소개&lt;/li&gt;&lt;/ul&gt;JSON 문자열을 textarea 에 넣고 &lt;span style=&quot;background-color: rgb(193, 193, 193);&quot;&gt;2 table !&lt;/span&gt; 버튼을 누르면 JSON 데이타를 테이블로 출력하고, 출력하는데 걸린 시간을 출력합니다. 표시하는 룰은 object 타입은 테이블로 나타내고, array 타입은 row로 나타냅니다.&lt;br /&gt;(참고: array 타입일 경우 테이블의 첫번째 로우에 각 item 의 이름(key)이 표시되는데, 그 아이템의 순서가 뒤바뀌거나 item 의 이름 종류나 개수가 일치하지 않는 경우 예외처리를 해놓지 않아서 정확하게 동작하지 않습니다)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;예제&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; code: &#039;success&#039;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; data: {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; member: {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name: &#039;김성준&#039;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; id: &#039;azki&#039;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sno: &#039;0701082&#039;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;위의 JSON 코드를 넣으니 아래 테이블로 표시되네요..&lt;div style=&quot;padding: 10px; background-color: rgb(201, 237, 255);&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;code&lt;/td&gt;&lt;td&gt;data&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;success&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;member&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;name&lt;/td&gt;&lt;td&gt;id&lt;/td&gt;&lt;td&gt;sno&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;김성준&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;azki&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;0701082&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;15ms
		&lt;/div&gt;&lt;br /&gt;아래부터는 다른 예제입니다&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &quot;dataset&quot;: [{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;columnInfo&quot;: [{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;type&quot;: &quot;string&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;size&quot;: 10,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;departure_city&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;type&quot;: &quot;string&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;size&quot;: 10,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;departure_date&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;type&quot;: &quot;string&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;size&quot;: 10,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;arrival_city&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;type&quot;: &quot;string&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;size&quot;: 10,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;arrival_date&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }],&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;rows&quot;: [{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;03Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;05Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;03Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;06Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;10Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;12Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;10Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;13Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;17Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;19Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;17Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;20Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;24Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;26Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;24Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;27Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;31Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;02Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;31Jul08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;03Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;07Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;09Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;07Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;10Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;14Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;16Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;14Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;17Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;21Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;23Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_city&quot;: &quot;TOKYO&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_date&quot;: &quot;21Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;arrival_date&quot;: &quot;24Aug08&quot;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;departure_city&quot;: &quot;BUSAN&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }],&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;Schedule&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }]&lt;br /&gt;}&lt;/div&gt;위의 JSON 코드를 넣으니 아래 테이블로 표시되네요..&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(201, 237, 255);&quot;&gt;&lt;br /&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;dataset&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;columnInfo&lt;/td&gt;&lt;td&gt;rows&lt;/td&gt;&lt;td&gt;name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;type&lt;/td&gt;&lt;td&gt;size&lt;/td&gt;&lt;td&gt;name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;string&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;departure_city&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;string&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;departure_date&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;string&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;arrival_city&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;string&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;arrival_date&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;arrival_city&lt;/td&gt;&lt;td&gt;departure_date&lt;/td&gt;&lt;td&gt;arrival_date&lt;/td&gt;&lt;td&gt;departure_city&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;03Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;05Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;03Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;06Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;12Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;13Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;17Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;19Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;17Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;20Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;24Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;26Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;24Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;27Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;31Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;02Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;31Jul08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;03Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;07Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;09Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;07Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;10Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;14Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;16Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;14Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;17Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;21Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;23Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;TOKYO&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;21Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;24Aug08&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;BUSAN&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;Schedule&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;109ms
		&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;추후 업데이트될 수도 있는(?) 기능들..&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;JSON 데이타를 포맷팅해주는 기능 (보기 편하게)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;색상등으로 좀 더 보기 편하게 해주는 기능&lt;br /&gt;&lt;/li&gt;&lt;li&gt;두가지 이상의 JSON 데이타를 서로 비교-분석 해주는 기능&lt;br /&gt;&lt;/li&gt;&lt;li&gt;많은 케이스에 대해서 테스트가 이뤄지지 않은 상태라 버그가 있을 가능성이 높음. -&amp;gt; 디버깅..&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</summary>
  </entry>
  <entry>
    <title type="html">input type 변경의 크로스 브라우저 문제 (password)</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/input-type-password-%EC%9D%98-%ED%81%AC%EB%A1%9C%EC%8A%A4-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EB%AC%B8%EC%A0%9C" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/16" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/input-type-password-%EC%9D%98-%ED%81%AC%EB%A1%9C%EC%8A%A4-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EB%AC%B8%EC%A0%9C</id>
    <updated>2008-06-13T15:15:59+09:00</updated>
    <published>2008-06-10T15:12:28+09:00</published>
    <summary type="html">소스1.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;var input = document.createElement(&quot;input&quot;);&lt;br /&gt;input.setAttribute(&quot;type&quot;, &quot;text&quot;);&lt;br /&gt;document.body.appendChild(input);&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;소스1. 적용 이후 다음 소스가 적용되지 않는다.. IE 에서만 ^^;&lt;br /&gt;&lt;br /&gt;소스2.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;input.setAttribute(&quot;type&quot;, &quot;password&quot;);&lt;/div&gt;&lt;br /&gt;IE 에서 나타나는 에러 메시지는 &quot;이 명령은 지원하지 않습니다.&quot;&lt;br /&gt;&lt;br /&gt;물론, setAttribute 메소드를 사용하지 않고 input.type = &quot;...&quot;; 로 적용시켜도 에러가 남.&lt;br /&gt;&lt;br /&gt;FF2, Opera9, Safari3 에서는 정확히 잘 동작한다. IE6, IE7, IE8 beta1 에선 에러가 난다..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;프로젝트에서는 아래와 같은 코드로 대체했다&lt;br /&gt;&amp;nbsp;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;if (Prototype.Browser.IE) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; var outerHTML = this._input.outerHTML;&lt;br /&gt;&amp;nbsp; &amp;nbsp; outerHTML = outerHTML.replace(/type=[a-z]*/, &quot;&quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; outerHTML = outerHTML.replace(/value=&quot;&quot;/, &quot;value=\&quot;&quot;+this._getText()+&quot;\&quot;&quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; // IE 에서는 한번 지정된 type을 변경할 수 없어서 새로운 Element 를 만들어야 함.&lt;br /&gt;&amp;nbsp; &amp;nbsp; // IE 에서 password 타입의 텍스트 박스는 outerHTML 에서 value 값이 나타나지 않아서 다시 넣어줘야함.&lt;br /&gt;&amp;nbsp; &amp;nbsp; var newInput = document.createElement(outerHTML);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (this._getPassword()) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; newInput.setAttribute(&quot;type&quot;, &quot;password&quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; this._input.parentNode.replaceChild(newInput, this._input);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; //이벤트등록해제 등등 reference value 에 관련된 모든 것들 해제&lt;br /&gt;&amp;nbsp; &amp;nbsp; //...&lt;br /&gt;&amp;nbsp; &amp;nbsp; this._input = newInput;&lt;br /&gt;&amp;nbsp; &amp;nbsp; //...&lt;br /&gt;&amp;nbsp; &amp;nbsp; //이벤트등록 등등 reference value 에 관련된 모든 것들 재등록&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; this._input.setAttribute(&quot;type&quot;, this._getPassword()? &quot;password&quot;: &quot;text&quot;);&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;ps. 이벤트 등 element 값 자체를 등록시켜놓은 부분에 대해 수정이 반드시 필요하다.&lt;br /&gt;&lt;br /&gt;참고로 이 문제의 다른 해결 방법이 없는지.. 구글을 찾아보니 역시나 비슷한게 있었다&lt;br /&gt;http://codingforums.com/showthread.php?t=107073&lt;br /&gt;&lt;strong&gt;Change &lt;span class=&quot;hilite1&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;text&quot; to &lt;span class=&quot;hilite1&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;&lt;span class=&quot;hilite3&quot;&gt;password&lt;/span&gt;&quot;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;Code:&lt;/div&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 750px; height: 258px; text-align: left;&quot;&gt;&amp;lt;script &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;function passit(ip){&lt;br /&gt;var np=ip.cloneNode(true);&lt;br /&gt;np.&lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&#039;&lt;span class=&quot;hilite3&quot;&gt;password&lt;/span&gt;&#039;;&lt;br /&gt;if(np.value!=ip.value)&lt;br /&gt;np.value=ip.value;&lt;br /&gt;ip.parentNode.replaceChild(np,ip);&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;form id=&quot;login&quot; action=&quot;#&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class=&quot;hilite1&quot;&gt;input&lt;/span&gt; id=&quot;username-field&quot; &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;text&quot; name=&quot;username&quot; title=&quot;Username&quot; onmousedown=&quot;javascript:this.value=&#039;&#039;; javascript:this.focus();&quot; value=&quot;Username&quot; tabindex=&quot;1&quot; /&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class=&quot;hilite1&quot;&gt;input&lt;/span&gt; id=&quot;&lt;span class=&quot;hilite3&quot;&gt;password&lt;/span&gt;-field&quot; &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;text&quot; name=&quot;&lt;span class=&quot;hilite3&quot;&gt;password&lt;/span&gt;&quot; title=&quot;&lt;span class=&quot;hilite3&quot;&gt;Password&lt;/span&gt;&quot; onmousedown=&quot;javascript:this.value=&#039;&#039;; passit(this.form[0]); javascript:this.focus();&quot; value=&quot;&lt;span class=&quot;hilite3&quot;&gt;Password&lt;/span&gt;&quot; tabindex=&quot;2&quot; /&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class=&quot;hilite1&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;=&quot;submit&quot; name=&quot;submit&quot; value=&quot;sign in&quot; tabindex=&quot;3&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;나도 처음에 cloneNode 메소드를 생각했었는데, 사용하지 않았다..&lt;br /&gt;이유는 type=&quot;text&quot; 인 input 을 type=&quot;password&quot; 로 변경은 가능하지만..&lt;br /&gt;반대로는 불가능했기 때문이다. -ㅁ-&lt;br /&gt;어째뜬..&lt;br /&gt;&lt;span class=&quot;hilite4&quot;&gt;IE&lt;/span&gt; does not like to change dynamically the &lt;span class=&quot;hilite2&quot;&gt;type&lt;/span&gt;, thus one solution might be to replace entirely the 
object.</summary>
  </entry>
  <entry>
    <title type="html">&lt;button&gt; 엘리멘트의 크로스 브라우징 문제</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/button-%EC%97%98%EB%A6%AC%EB%A9%98%ED%8A%B8%EC%9D%98-%ED%98%B8%ED%99%98" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/15" thr:count="1"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/button-%EC%97%98%EB%A6%AC%EB%A9%98%ED%8A%B8%EC%9D%98-%ED%98%B8%ED%99%98</id>
    <updated>2008-05-26T19:22:03+09:00</updated>
    <published>2008-05-26T19:22:03+09:00</published>
    <summary type="html">소스1.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;&amp;lt;button style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 152px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; height: 100px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: red;&lt;br /&gt;&amp;nbsp; &amp;nbsp; border: 15px solid blue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; overflow: hidden;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;&amp;lt;div style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 122px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&amp;nbsp; &amp;nbsp; left: 0px; top: 0px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: green;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;azki&#039;s test&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/button&amp;gt;&lt;/div&gt;&lt;br /&gt;출력물1. (FF2)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1043536912.png&quot; width=&quot;167&quot; height=&quot;110&quot; /&gt;&lt;br /&gt;&lt;br /&gt;출력물2. (IE6, IE7 도 동일하게 나온다)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1391594444.png&quot; width=&quot;163&quot; height=&quot;112&quot; /&gt;&lt;br /&gt;&lt;br /&gt;출력물3. (왼쪽부터 Opera3, Safari9... 비슷함)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1199176056.png&quot; width=&quot;161&quot; height=&quot;111&quot; /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1054324155.png&quot; width=&quot;166&quot; height=&quot;108&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;직관적으론 출력물3 처럼 나와야 하겠지만 불행히도 FF와 IE에서는 이상하게 나온다..&lt;br /&gt;내부 div 에 top 과 left 속성을 제거해보자.. 더욱 더 가관이다.&lt;br /&gt;&lt;br /&gt;소스2.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;&amp;lt;button style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 152px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; height: 100px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: red;&lt;br /&gt;&amp;nbsp; &amp;nbsp; border: 15px solid blue;&lt;br /&gt;&amp;nbsp; &amp;nbsp; overflow: hidden;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;&amp;lt;div style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 122px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: green;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;azki&#039;s test&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/button&amp;gt;&lt;/div&gt;&lt;br /&gt;출력물1. (FF2)&lt;br /&gt;
&lt;img src=&quot;http://dev.azki.org/attach/1/1030559684.png&quot; width=&quot;222&quot; height=&quot;109&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
출력물2. (IE6, IE7 도 동일하게 나온다)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1243413764.png&quot; width=&quot;223&quot; height=&quot;112&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
출력물3. (Opera9)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1013114884.png&quot; width=&quot;167&quot; height=&quot;109&quot; /&gt;&lt;br /&gt;&lt;br /&gt;출력물4. (Safari3)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1200039536.png&quot; width=&quot;164&quot; height=&quot;110&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;내가 원하는 것은 소스1의 출력물3과 같은 형태인데,&lt;br /&gt;참 어려운것 같다 ㅡㅡ&lt;br /&gt;더욱 재미난 것은... FF 의 디버깅 도구 firebug 에서 보여지는 부분이다. (소스1)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1167665293.png&quot; width=&quot;917&quot; height=&quot;440&quot; /&gt;&lt;br /&gt;날 약올리듯이? 내가 원하는 부분을 정확하게 가르키고 있다.&lt;br /&gt;&lt;br /&gt;일단 하나 하나를 분석해보니..&lt;br /&gt;&lt;br /&gt;border 가 좌우 좌표를 이상하게 만드는 것 같았다. (IE와 FF에서)&lt;br /&gt;&lt;br /&gt;그리고 FF 에서는 padding 이 또 문제를 안쪽 div의 위치를 움직이고 있었다.&lt;br /&gt;&lt;br /&gt;소스1에서 border 와 padding 을 모두 0px 로 준 결과를 살펴보면 다음과 같다&lt;br /&gt;&lt;br /&gt;소스3.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;&amp;lt;button style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 152px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; height: 100px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: red;&lt;br /&gt;&amp;nbsp; &amp;nbsp; border: 0px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; padding: 0px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; overflow: hidden;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;&amp;lt;div style=&quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp; width: 122px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: absolute;&lt;br /&gt;&amp;nbsp; &amp;nbsp; left: 0px; top: 0px;&lt;br /&gt;&amp;nbsp; &amp;nbsp; background: green;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt;azki&#039;s test&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/button&amp;gt;&lt;/div&gt;&lt;br /&gt;출력물1. (FF2)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1068014693.png&quot; width=&quot;159&quot; height=&quot;110&quot; /&gt;&lt;br /&gt;출력물2. (IE6, IE7, Opera9, Safari3)&lt;br /&gt;&lt;img src=&quot;http://dev.azki.org/attach/1/1219386494.png&quot; width=&quot;163&quot; height=&quot;106&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;결국 적절한 해답은 못 찾았고..&lt;br /&gt;&lt;br /&gt;소스3의 상태에서 FF만 따로 위치를 잡아주는 식으로 처리를 했다&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 51, 153); font-weight: bold;&quot;&gt;left 속성: -3 , top 속성: -(높이/2+1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;부록::&lt;br /&gt;프로젝트에서는 javascript 로 이런식으로 구성되어 있다 ㅡㅡㅋ&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(255, 218, 237);&quot;&gt;initialize: function() {&lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt;//컴포넌트 객체를 생성할 때 호출됨..&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //...&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (Prototype.Browser.Gecko) {&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._label.setX(-3);&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else {&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._label.setX(0);&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._label.setY(0);&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;,&lt;br /&gt;//...&lt;br /&gt;,&lt;br /&gt;onresize: function() {&lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt;//사이즈 변경시에 호출됨..&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //...&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (Prototype.Browser.Gecko) {&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this._label.setY(-1-Math.floor(height/2));&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</summary>
  </entry>
  <entry>
    <title type="html">JavaScript 에서 style 속성 구하기</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/JavaScript-%EC%97%90%EC%84%9C-style-%EC%86%8D%EC%84%B1-%EA%B5%AC%ED%95%98%EA%B8%B0" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/4" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/JavaScript-%EC%97%90%EC%84%9C-style-%EC%86%8D%EC%84%B1-%EA%B5%AC%ED%95%98%EA%B8%B0</id>
    <updated>2008-06-13T17:28:59+09:00</updated>
    <published>2008-05-21T10:57:03+09:00</published>
    <summary type="html">&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Javascript 로 지정한 style 의 경우 구하는 예&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;element.style[&quot;fontSize&quot;]&lt;/div&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;IE 의 경우 구하는 예&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;element.currentStyle[&quot;fontSize&quot;]&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;FF 의 경우 구하는 예&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;document.defaultView.getComputedStyle(element, &quot;&quot;).getPropertyValue(&quot;font-size&quot;)&lt;/div&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;참고: IE 의 경우 filter 값을 구하는 방법의 예.&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;element.filters.item(&quot;alpha&quot;).opacity&lt;/div&gt;&lt;br /&gt;</summary>
  </entry>
  <entry>
    <title type="html">JavaScript Eval 함수의 IE에서 사용 주의점</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/JavaScript-Eval-%ED%95%A8%EC%88%98%EC%9D%98-IE%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9-%EC%A3%BC%EC%9D%98%EC%A0%90" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/14" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/JavaScript-Eval-%ED%95%A8%EC%88%98%EC%9D%98-IE%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9-%EC%A3%BC%EC%9D%98%EC%A0%90</id>
    <updated>2008-11-06T00:37:02+09:00</updated>
    <published>2008-05-14T09:27:49+09:00</published>
    <summary type="html">예전부터 알고 있었던거라 그때 정리해 쓸려했는데..&lt;br&gt;조금 더 보편화된 패턴이 발견되면 정리할려다 시간이 많이 흘러 이렇게 그냥 정리.. (결국 보편화된 패턴이나 다른 이상 증상은 아직 발견하지 못했습니다. 발견하신분이나 이 문제에 대해 이견이 있으신분은 꼭 리플을 달아주시면 감사드리겠습니다.)&lt;br&gt;&lt;br&gt;이제라도 증상에 대해 기록해 두어야 될거 같아 정리해 올림-.-&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;증상 &amp;amp; 분석&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;IE 에서는 eval 구문에 다음 스트링을 사용하였을 때 반환이 되지 않음.&lt;br&gt;&quot;(function() {})&quot;&lt;br&gt;&lt;/div&gt;다른 4대 브라우저(FF,Opera,Safari) 에서는 반환이 된다.&lt;br&gt;&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(208, 255, 157);&quot;&gt;typeof eval(&quot;(function() {})&quot;);&lt;/div&gt;가 IE 에서만 &quot;&lt;span style=&quot;background-color: rgb(153, 204, 102);&quot;&gt;undefined&lt;/span&gt;&quot; 가 나온다&lt;br&gt;나머지 브라우저에서는 잘 된다 (&quot;&lt;span style=&quot;background-color: rgb(153, 204, 102);&quot;&gt;function&lt;/span&gt;&quot; 반환)&lt;br&gt;&lt;br&gt;IE가 eval 안에서 function 구문이 동작하지 않는 건 아닌거 같다&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(208, 255, 157);&quot;&gt;typeof eval(&quot;(function() {return function() {};})();&quot;)&lt;/div&gt;은 또 &quot;&lt;span style=&quot;background-color: rgb(153, 204, 102);&quot;&gt;function&lt;/span&gt;&quot; 으로 나오기 때문이다&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;대안&lt;/li&gt;&lt;/ul&gt;그냥 function 을 eval 로 정리해서 쓰고 싶을 땐.. (function 내용을 스트링 값으로 선언하고 싶을 때?)&lt;br&gt;&lt;ol&gt;&lt;li&gt;function 구문을 eval 밖으로 빼고 소스 부분만 eval 로 넣는다.&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;var a = eval(&quot;function() { var a=1; alert(++a); return a; }&quot;);&lt;/div&gt;대신&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;var a = function() { eval(&quot;var a=1; alert(++a); return a; &quot;) };&lt;/div&gt;를 사용한다.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;그냥 eval 대신 Function 을 사용한다.&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;var a = eval(&quot;function() { var a=1; alert(++a); return a; }&quot;);&lt;/div&gt;대신&lt;br&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;var a = new Function(&quot;var a=1; alert(++a); return a;&quot;);&lt;/div&gt;를 사용한다.&lt;/li&gt;&lt;/ol&gt;ps. 필자는 2번 방식을 좋아한다. 속도가 더 빠르기 때문이다. (똑같은 구문이라면 eval을 사용하는 것이 거의 속도가 큰 차이로 떨어진다. 그렇기 때문에 난 왠만하면 eval 은 쓰지 않는다.)</summary>
  </entry>
  <entry>
    <title type="html">JavaScript 배열 변수 메소드 정리</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/JavaScript-%EB%B0%B0%EC%97%B4-%EB%B3%80%EC%88%98-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/13" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/JavaScript-%EB%B0%B0%EC%97%B4-%EB%B3%80%EC%88%98-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%A0%95%EB%A6%AC</id>
    <updated>2008-06-13T17:29:00+09:00</updated>
    <published>2008-05-14T09:27:35+09:00</published>
    <summary type="html">업무 or 개인 프로젝트 시 자주 쓰게 되는 배열 변수 메소드를 정리하였습니다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.sort&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;sort ([sortFunction: function]) : array&lt;/span&gt;&lt;br /&gt;해당 배열 자신을 정렬한다. (기존 배열 변경)&lt;br /&gt;sortFunction 을 생략하면 charCode 값을 기준으로 오름차순으로 정렬한다.&lt;br /&gt;반환값은 자기 자신의 레퍼런스다. (non copy)&lt;br /&gt;sortFunction 은 function 타입이며, 두개의 인자를 받는다. sortFunction 이 음수를 반환하면 그 두 아이템을 스왑한다. (양수나 0을 반환시에는 스왑하지 않는다.)&lt;br /&gt;각 배열 아이템의 짝을 모두 수행하는 것은 똑같지만 수행하는 순서는 브라우저 별로 조금 다르다.&lt;br /&gt;배열 [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;] 를 .sort 메소드로 sortFunction 에 던질 경우 FF 는&lt;br /&gt;sortFunction (&quot;a&quot;, &quot;b&quot;) -&amp;gt; sortFunction (&quot;c&quot;, &quot;a&quot;) -&amp;gt; sortFunction (&quot;b&quot;, &quot;a&quot;)&lt;br /&gt;순으로 던지고, IE 에서는&lt;br /&gt;sortFunction (&quot;b&quot;, &quot;b&quot;) -&amp;gt; sortFunction (&quot;c&quot;, &quot;a&quot;) -&amp;gt; sortFunction (&quot;b&quot;, &quot;a&quot;)&lt;br /&gt;순으로 던진다.&lt;br /&gt;sortFunction 이 무조건 음수를 반환하는 경우 결과값 또한 다르게 나온다. (물론 정상적인 비교를 수행하는 함수라면 같은 결과가 나오겠지만, 같은 코드가 다른 결과값을 낸 다는 사실에 흥미를 갖고 수행시켜보았다)&lt;br /&gt;FF: [&quot;c&quot;, &quot;a&quot;, &quot;b&quot;]&lt;br /&gt;IE: [&quot;b&quot;, &quot;c&quot;, &quot;a&quot;]&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.reverse&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;reverse () : void&lt;/span&gt;&lt;br /&gt;해당 배열 자신을 뒤집는다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.push&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;push ([item1 : mixed [, item2 : mixed [, item3 : mixed, ...]]]) : item&lt;/span&gt;&lt;br /&gt;푸시하고 마지막으로 추가된 아이템을 반환한다. (3개의 item을 추가했을 경우 item3을 반환)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.pop&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;pop () : item&lt;/span&gt;&lt;br /&gt;팝한다. 비어있는 경우엔 undefined 를 반환한다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.shift&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;shift () : item&lt;/span&gt;&lt;br /&gt;시프트한다. 팝을 기능을 반대방향으로 수행한다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.unshift&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;
unshift ([item1 : mixed [, item2 : mixed [, item3 : mixed, ...]]]) : void&lt;/span&gt;&lt;br /&gt;언시프트한다. 푸쉬의 기능을 반대방향으로 수행한다. 반환값은 브라우저별로 다르므로 사용하지 않는 것이 좋다. (예로 IE6 에서는 undefined 을 반환하지만, FF2 에서는 push와 마찬가지로 마지막 인자값을 반환한다)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.slice&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;slice (start : int [, end : int]) : array&lt;/span&gt;&lt;br /&gt;지정된 부분을 복사해 새로운 배열을 반환한다. start는 포함하지만, end는 포함하지 않는다.&lt;br /&gt;start 가 음수면 legnth + start 로 처리한다.&lt;br /&gt;end 가 음수면 length + end 로 처리한다.&lt;br /&gt;end 가 생략되면 배열의 끝까지 추출한다.&lt;br /&gt;원래 배열변수에 영향을 주진 않는다. (복사해서 새로운 배열을 만듬)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.splice&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;splice (start : int, deleteCount : int, [item1 : mixed [, item2 : mixed [, item3 : mixed, ...]]]) : array&lt;/span&gt;&lt;br /&gt;지정된 부분을 삭제하고, 그 부분에 새로운 아이템을 추가한다. 그리고 반환은 삭제된 아이템들을 가진 새로운 배열이다. (deleteCount 가 0 일 경우 빈 배열이, 1 일 경우 아이템이 1개인 배열이 반환)&lt;br /&gt;deleteCount 가 0 이면 삭제되는 것이 없다.&lt;br /&gt;item 을 생략하면 삭제만 수행한다.&lt;br /&gt;배열 가운대 인자를 추가할 경우(deleteCount = 0)나 배열 중간에 있는 인자를 삭제할 경우(item 생략) 활용가능하다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.concat&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;concat ([item1 : mixed [, item2 : mixed [, item3 : mixed, ...]]]) : array&lt;/span&gt;&lt;br /&gt;배열에 아이템들을 추가한 새로운 배열을 반환한다. 푸쉬와 비슷하게 추가되지만, 기존 배열에 영향을 미치지 않고 새로운 배열을 반환한다는 점에서 다르다.&lt;br /&gt;추가되는 순서는 당연히 왼쪽에서 오른쪽으로 순서대로이다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.join&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;join ([separator : string]) : string&lt;/span&gt;&lt;br /&gt;배열 요소들 사이에 separator 을 넣어서 하나의 string을 만들어 반환한다. separator 를 생략할 경우 &quot;,&quot;(ascii 44)로 처리한다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ps. 배열 변수는 레퍼런스 값이다.즉, &lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;var a = b = [1];&lt;br /&gt;var c = [1];&lt;/div&gt;에서&lt;br /&gt;&lt;span style=&quot;background-color: rgb(250, 255, 169);&quot;&gt;a == b 는 true 지만 a == c 는 false 다.&lt;/span&gt;</summary>
  </entry>
  <entry>
    <title type="html">User preferences color table v 1.0</title>
    <link rel="alternate" type="text/html" href="http://dev.azki.org/entry/User-preferences-color-table-v-10" />
    <link rel="replies" type="application/atom+xml" href="http://dev.azki.org/atom/response/12" thr:count="0"/>
    <category term="javascript" />
    <author>
      <name>(아즈키)</name>
    </author>
    <id>http://dev.azki.org/entry/User-preferences-color-table-v-10</id>
    <updated>2008-06-13T17:29:01+09:00</updated>
    <published>2008-05-14T09:27:01+09:00</published>
    <summary type="html">업무용(?)으로 종종 쓰고 있는, User preferences for colors 입니다.&lt;br /&gt;&lt;br /&gt;개인적으로 보기 위해 테이블로 작성하였습니다.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;URL&lt;/li&gt;&lt;/ul&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://upct.azki.org/&quot;&gt;http://upct.azki.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;소개&lt;/li&gt;&lt;/ul&gt;윈도우에서 설정한(디스플레이 설정에서 화면배색 부분) 색상들을 HTML 에서 가져다 쓰는 것 입니다.&lt;br /&gt;CSS2 에서 추가되었다고 합니다. 참고로 꼭 윈도우즈에서만 적용되는 건 아닙니다. 우분투에서 파이어폭스로 테스트 해본 결과 됩니다.&lt;br /&gt;4
대 브라우저(FF,IE,Opera,Safari)에서 다 적용됩니다. 다만 윈도우 버전 Safari에서는 설정값을 윈도우즈의
것으로 가져오지 않는군요. (내부적으로 설정된 컬러를 쓰더군요, Mac 에서는 어떤지 모르겠습니다. 아마 잘 되겠죠?)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;기반 자료 출처&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;이용석의 JavaScript &amp;amp; DHTML (&lt;a target=&quot;_blank&quot; href=&quot;http://user.chollian.net/%7Espacekan/css/preferences-colors.htm&quot;&gt;http://user.chollian.net/~spacekan/css/preferences-colors.htm&lt;/a&gt;)&lt;br /&gt;아주 오래전부터 알고 다니는 사이트인데 지금 봐도 참 좋은 사이트입니다. ^^</summary>
  </entry>
</feed>
