javascript object 관련 테스트javascript object 관련 테스트

Posted at 2014. 11. 10. 16:42 | Posted in 프로그래밍 언어/Javascript

소스코드

var h = {};
console.log(typeof h);

h['a'] = 'aa';
h['b'] = 'bb';
Object.prototype.testFunction = function() {
	console.log('testFunction called');
}

console.log('length property = ' + h.length);
for (var i in h) {
	console.log(i + ' > ' + h[i]);
}

console.log(Object.keys(h));

결과

[test.html:4] object
[test.html:12] length property = undefined
[test.html:14] a > aa
[test.html:14] b > bb
[test.html:14] testFunction > function () {
	console.log('testFunction called');
}
[test.html:17] Array[2]
	0: "a",
	1: "b",
	length: 2,
	__proto__: Array[0]
//

크롬에서 트위터의 한글 깨짐(콜론 생김) 현상크롬에서 트위터의 한글 깨짐(콜론 생김) 현상

Posted at 2013. 7. 1. 22:58 | Posted in 프로그래밍 언어/HTML/CSS

크롬을 사용하다보면 간혹 한글이 이상하게 보이는 사이트가 있습니다.

대표적인 곳이 트위터.



그냥 무시하고 쓰다가.. 영 거슬려서 해결책을 찾아봤습니다.

CSS에서 text-rendering 항목을 auto로 바꾸면 된다고 하네요. (http://wpu.kr/tip/some-themes-chrome-hangul-colon/)


그래서 한번 트위터의 CSS를 봤습니다.

위 처럼 콜론이 생기는 부분을 봤더니, 대략 조건이 다음과 같아 보입니다.


  • HTML 태그는 h1 ~ h6
  • CSS에서 text-rendering: optimizeLegibility
  • 폰트는 영문 폰트. 특이한건 대표폰트로 Arial이나 Verdana 같은걸 놓고 서브로 sans-serif를 설정했을 때에만 발생..


..... 복잡하네요.

뭐 조건이 어떻든 간에, text-rendering 항목을 auto로 바꾸면 해결된다고 하니, CSS를 수정합니다.


그런데 트위터는 제가 맘대로 CSS를 바꾸고 그럴 수가 없으니까..

크롬 브라우저에서 사용자 전용 CSS를 적용했습니다. (http://circleses.tistory.com/23)

위 블로그에도 나와있지만, 아래 파일을 연 다음

appdata\Local\Google\Chrome\User Data\Default\User StyleSheets\Custom.css

다음과 같이 입력하고

h1, h2, h3, h4, h5, h6 { text-rendering: auto !important; }

저장!

브라우저를 끄거나 새로고침 할 필요 없이 바로 적용 됩니다.



와~

//

URL anchor값 얻기URL anchor값 얻기

Posted at 2012. 8. 14. 22:53 | Posted in 프로그래밍 언어/Javascript

anchor에 대해서 간단히 몇 자 적습니다.

아래와 같이 하나의 html 문서 내에서 bookmark처럼 사용할 수 있는데요.
'제목으로' 링크를 누르면 'title1'이 정의된 곳으로 화면이 이동하는 기능.

제목 : 이러쿵저러쿵

제목으로

여기서 단순히 이동만 하는게 아니고, URL 뒤에 #xxx 형태로 값이 기록되기 때문에(xxx.html#title1)
자바스크립트를 사용해서 동적인 페이지를 만드는 웹사이트의 경우에 '현재 상태를 기록'하는 용도로 활용할 수 있을 것 같습니다.

예를 들어 ajax로 구현된 게시판이 있다고 하면...

1
2
3

이 때, ajax를 사용하지 않는 게시판이라면 URL은 list.do?page=3 라는 식이 되겠죠.
페이지를 표시하기 전에 URL의 page=3 값을 읽어서 3페이지의 글들을 화면에 뿌려주도록 처리할테구요.

여기서는 URL이 list.do#3이 될테고,
javascript에서 #3 값을 읽어서 3페이지를 보여주게끔 처리할 수 있습니다.
이렇게 놓고 보니 정말로 (사용자 입장에서는) 3페이지에 'bookmark' 표시를 한 것처럼 동작하겠네요 ㅎㅎ

URL anchor 값은 페이지 리로딩 없이 바꿀 수 있기 때문에,
페이지를 동적으로 만드는 경우에 궁합이 잘 맞을거 같습니다.

그러면 이제 저 #3 값을 얻는 방법을 알아야겠죠.

예를 들어, URL이 xxx.html#home 이라고 가정하면

var locationHash = location.hash; // locationHash == '#home'

위와 같이 얻을 수 있습니다.

다양하게 활용할 수 있을 것 같네요. 

//

max-height를 이용한 특정 높이가 되면 스크롤바가 생기는 div 박스.max-height를 이용한 특정 높이가 되면 스크롤바가 생기는 div 박스.

Posted at 2011. 8. 3. 00:27 | Posted in 프로그래밍 언어/HTML/CSS
제목 쓰기 참 어렵군요....;;;

내용입니다 1
내용입니다 2

내용입니다1
내용입니다2
내용입니다3
내용입니다4
내용입니다5
내용입니다6

이런걸 만드는 겁니다.

처음엔 높이가 내용에 종속적인 <div> 박스였다가,
내용이 길어져서 높이가 특정 값이 넘어가면 더이상 늘어나지 않고, 스크롤바가 생기는 <div> 박스입니다.
내용입니다1
내용입니다2
내용입니다3
내용입니다4
내용입니다5
내용입니다6
요점은 CSS의 max-heightoverflow-y

1. max-height로 높이에 최대값을 설정
max-height는 해당 엘리먼트의 최대 height를 지정하는 겁니다.
예를 들어 max-height: 100px 이라면,
해당 엘리먼트는 내용에 따라 height가 10px이 될 수도 있고 100px이 될 수도 있지만, 101px은 될 수 없습니다.
이렇게 특정 높이가 되면 height가 증가하지 않도록 만듭니다.

그.러.나.
IE에서는 max-height가 안 먹히네요. 심지어 IE8에서도.
대신에 위에 보이는 것 처럼 height: expression(...)을 사용하면 됩니다.
의미는 간단하게, '높이가 99px보다 크면 height를 100px로 설정하고, 아니면 auto로 설정한다'
즉, 높이는 100px을 초과할 수 없고, 100px보다 작으면 내용에 따라 늘었다 줄었다 하는거죠.
max-height처럼!
( * 출처: http://perishablepress.com/press/2007/01/16/maximum-and-minimum-height-and-width-in-internet-explorer/ )

2. 넘어가는 내용을 위해 스크롤바 생성
overflow는 내용이 엘리먼트를 넘어갔을 때 어떻게 표현될 것인지를 설정합니다.
overflow-y: auto 로 설정하면 세로로 내용이 넘어갈 때만 세로 스크롤바가 생기는거죠.
( * 자세한 건 http://www.w3schools.com/cssref/pr_pos_overflow.asp 를 참조 )


//

윈도우 환경에서 Perl사용, ActivePerl윈도우 환경에서 Perl사용, ActivePerl

Posted at 2010. 8. 27. 15:27 | Posted in 프로그래밍 언어/Java

ActivePerl 설치

ActivePerl(http://www.activestate.com/activeperl)을 받아서 설치한다.
위 사이트에 접속, 오른쪽에 Download ActivePerl을 클릭하여 자신의 플랫폼에 맞는 걸 받아 설치하면 된다.
콘솔창(cmd)에서 리눅스와 마찬가지로 "perl filename.pl" 하면 된다.

   

Perl용 라이브러리 사용

Perl 용 라이브러리를 가져다 써보자. 사실 이게 주 목적이었다.
윈도우 환경에서 Java로 구현된 프로그램에 Perl로 구현된 라이브러리를 이용하고 싶었다.
이용하려 한 것은 WordNet::Similiarty (http://wn-similarity.sourceforge.net/)
WordNet 2.1을 이용할 것이기 때문에 WordNet::Similarity 1.04를 사용한다.
다운받으면 이미 pm(perl module)파일로 떨어져 있지만, 그냥 끝내면 심심하니? 컴파일 시도.

먼저 make를 하려는데 GCC가 필요하단다. 설치하자. 콘솔에서 "ppm install MinGW"을 입력하면 된다.

다음엔 makefile을 만들자. "perl Makefile.PL"
이 때 의존성이 걸린 프로젝트가 있으면 알려준다.
WordNet::Similarity의 경우 Text::Similarity와 WordNet::QueryData이 필요하다 나온다. 컴파일 방법은 똑같으니 계속한다.
(WordNet::Similarity 사이트에서는 WordNet::QueryData 1.45를 쓰라고 함.)

그 다음 리눅스처럼 make & make install을 해야 하는데, 여기선 ActivePerl에서는 dmake가 있다.
dmake
dmake install
에러 없이 완료되면 blib란 폴더가 생기고, 그 안에 결과물이 들어가 있다. blib/lib 들어가보면 모듈 파일이 생성되어 있다.

   

Java에서 Perl 프로그램의 결과를 이용

Java에서 Perl의 모듈을 이용하는 멋들어진 방법이라면 따로 포스팅을 하겠지만,
단순히 Perl 프로그램이 콘솔에 찍는 결과만을 이용할 예정이라 단순한 방법을 택했다.
(멋들어진 방법을 쓰고 싶지만 배보다 배꼽인 상황이라)

Process p = Runtime.getRuntime().exec("perl " + url);
Scanner scanner = new Scanner(p.getInputStream());
while(scanner.hasNextLine())
{
    String line = scanner.nextLine();
}

남은건 String line가지고 파싱하는 것 뿐.

//