| |
|
|
|
|
|
웹페이지를 새로고침 해야 할 때가 있습니다. F5를 누르는거면 문제도 아니지만, cgi를 만드는 도중 스크립트가 알아서 새로고침 하도록 하는건 때로는 방해되는 문제이기도 하고, 유용하게 쓰이기도 하고 주절주절...
본부는 로그인을 누르면 1. 새 창을 띄워서 로그인 폼을 보여주고, 2. 여기서 로그인을 하면 로그인 창을 닫아버리고 3. 본래 로그인 하려던 페이지가 떠 있는 브라우저를 다른 창보다 위로 잡아준 다음 4.그 페이지를 새로고침 합니다. 그래야 로그인전/후 상태가 나눠져서 구현된 페이지의 경우 바르게 표시 되겠지요.
여기까지 만들어 놓고 '아 이걸로 귀찮은거 해결' 등의 거만한 말을 씨부렁 거리며 파이어폭스를 켜서 같은 페이지에서 로그인을 시도했습니다. 근데 문제가 생겼습니다.
IE에선 로그인 창을 열어준 부모창(원래 사용자가 보고있던 창)이 로그인 직후 새로고침이 잘 되는데. FF에선 새로고침이 안되더군요.
.
.
.
로그인 폼 부분
.
.
.
window.close(); <!-- 로그인 창 닫아버림 -->
opener.history.go(0); <!-- history 0 이므로 부모창에서 현재 페이지를 새로고침 -->
opener.focus(); <!-- 부모창을 다른창 보다 위로 잡아주기 -->
뭐 이랬는데. FF에서 새로고침이 안되는 거니깐 opener.history.go(0); 이거이 문제가 아닐려나 하고 구글한 끝에 모질라 포럼 한 구석에서 발견한 소스에서 원인을 알았습니다.
FF에선 history.go(-1), history.go(-2) 등등은 있어도 (0) 은 없다는 것입니다. history.go(0); 이런건 IE에서나 된다네요? 이쯤되면 IE나 FF나 둘다 칭찬해 줄 수 없을거 같은데(이걸 알기까지 너무 많은 삽질을 해댔다.) 어쨋거나,
.
.
.
로그인 폼 부분
.
.
.
window.close(); <!-- 로그인 창 닫아버림 -->
opener.location.reload(); <!-- 새로고침 -->
opener.focus(); <!-- 부모창을 다른창 보다 위로 잡아주기 -->
이렇게 고쳐서 승부를 냈답니다. 잇힝.
이 사건(?)과는 상관없는 이야기 이지만, FF도 최근에는 marquee같은 비표준 태그 또는 IE에서나 사용되던 스크립트 구문 몇가지를 지원하기 시작한 걸 보니, 완벽한 표준 보다는 IE 대체브라우저 로서 크로스브라우징이 편리하도록 호환성에 좀 더 신경을 쓰는게 아닌가 하는 느낌이 요즘 들고 있습니다. |
| Tag : extension,
firefox,
IE,
marquee,
refresh,
로그인,
새로고침,
익스플로러,
파이어폭스,
호환성,
확장기능 |
|
|
| Track this back : http://arrstein.2dice.net/trackback/6 |
|
|
|
|
|
|
|
http://clarin.pe.kr/rdwd/randword.php
위의 주소는 예전에 잘 가지고 놀았던 randword란 녀석인데, 사실 저기서 문장을 db에 넣고 -> 아무거나 가져와서 문장요소를 붙여주는 핵심 부분은 Hungry 가 제작한 것입니다. 나중에 문장성분이 바뀌면서 제가 많이 손보긴 했지만요.
저걸 자랑할려는게 아니라(자랑할게 되야 말이지;) 저걸 몇번 가지고 놀다보면 다들 깨닫게 되십니다만, 조사를 체크하는 기능이 없습니다.
한글에는 다양한 조사가 있습니다. 불확실한 중학교 시절 수업시간의 기억을 더듬어 보면 격조사, 보조사, 또 뭐 하나 더 있었던거 같은데 하여튼 중요한건 이게 아니고 -_-
각각의 문장성분의 끝에서, ~와/~과/~으로/~는/~은/~이가 등등...한글은 너무 좋아서 조사도 다양한데요.
저 스크립트의 경우 조사가 다음에 나올 문장성분과 어울리지 않는 경우가 자주 있습니다.
이런걸 php 스크립트 자체에서 체크할 수 있는 방법이 없을까요?
사례를 싸그리 다 저장해서 체크해야 하나 -_- 만들다가 국어를 마스터 하게 될지도; |
|
| Track this back : http://arrstein.2dice.net/trackback/4 |
|
|
|
|
|
|
|
| 제목을 '랜덤하게 이미지를 표시하기' 라고 쓸려다가. 그냥 이쪽이 더 맞는거 같아서..
이미지 여러개를 골라놓고. 그 중에 아무 이미지나 하나만 임의로 선택하게 해서 띄우고 싶을 때가 있습니다. 이걸 홈페이지에다 써먹는다면, 들어갈 때 마다 다른 사진을 하나씩 띄우는것도 되겠지요.
원래 이건 자바스크립트로 하는게 더 간단합니다. 주로 자바스크립트를 쓰지요. 근데 자바스크립트에 대해 바르게 공부해 본 적이 없는 저는 역시 php 로 땜질 해야 했습니다. <? $images = array('1.gif','2.gif','3.gif','4.gif','5.gif','6.gif','7.gif','8.gif');
srand ((double)microtime()*1000000);
shuffle($images);
echo "<img src='".$images[0]."' border='0'>"; ?>
이것도 뭔가 알아서 척척척 아무거나 골라주는 함수가 있을 법 한데. 흠.
$images 라는 변수 안에 이미지 파일의 이름들을 배열로 집어 넣습니다.
그다음 난수를 적당히 적당히(srand, microtime 등등) ... 근데 저것도 레퍼런스에 나와있는 예제에 보니깐 난수 관련해선 다 저게 들어가길래 넣은겁니다. 땜질에 이은 짜집기.
shuffle() 은 배열을 섞어주는 함수입니다. 순서없이 그냥 휘저어 주는 녀석입니다.
shuffle() 을 하고 나면 위에 $images 배열이 (1.gif, 2.gif 3.gif....) 이던 것이 그냥 순서가 다 섞여버립니다. (6.gif, 8.gif, 1.gif ....) 이런식으로 되어 있을 수 있다는 거지요. 어떻게 섞여 있는지는 배열을 출력해 보면 알게 됩니다.
그 다음줄의 echo에서 $images 배열의 [0] 번에 해당되는 것만 출력합니다. -_-
젠장 허접해라;
그러니깐 사실 섞어주는거 따로, 고르는거 따로인 허접한 소스인데, 고르는건 제목대로 랜덤이 아니라 무조건 [0]번만 고르는 겁니다. 카드를 실컷 섞고 제일 앞장만 뒤집어 보는거랑 같다고 해야 할지... '아무거나 한 개만 보면 된다'는 목적으론 충분하지만 배열 안의 나머지 녀석들의 존재는(...)
섞을때마다 순서가 틀려지니 [0] 번에 오는 녀석도 틀려질 테고, 결과적으로 새로 고침 할 때 마다 다른 이미지가 뜬다! 목적달성! 따지지 말자!
|
|
| Track this back : http://arrstein.2dice.net/trackback/3 |
|
|
|
|
|
| 호미로든 가래로든 구멍을 막을 수만 있으면 된다. |
«
2006/04
»
| 일 |
월 |
화 |
수 |
목 |
금 |
토 |
| |
|
|
|
|
|
1 |
| 2 |
3 |
4 |
5 |
6 |
7 |
8 |
| 9 |
10 |
11 |
12 |
13 |
14 |
15 |
| 16 |
17 |
18 |
19 |
20 |
21 |
22 |
| 23 |
24 |
25 |
26 |
27 |
28 |
29 |
| 30 |
|
|
|
|
|
|
|
Total :
21690
Today : 9
Yesterday : 6 |
|
|
 |
 |
 |
|