글 추천, 즐겨찾기, 친구 추가 등
처리하고 나서 페이지 내용이 바뀌지 않아도 되는 것이 많이 있습니다
이럴 경우 보통
숨은 팝업창을 띄워서 처리를 한 후 처리가 끝나면 숨은창을 다시 닫는 방식을 많이 사용합니다
그러나 이용자가 팝업창을 금지하였을 경우에는
추가버튼등을 눌러도 아무런 액션이 일어나지 않아
이용자는 이를 오류라고 인식하게됩니다
그래서 해결방법으로 생각해본 것이 이미지를 이용한 통신방법입니다
iframe을 이용한 방법도 있겠으나 iframe을 이용하면 window.history가 바뀌어서
이용자가 앞/뒤가기를 눌렀을 경우 다르게 가게 됩니다
이미지를 이용한 통신이고 기존의 xmlHttp와 유사한 기능을 하므로
일단 "imgHttp"라고 이름을 지었습니다
기능은 다음과 같이 동작합니다
1. img src를 대체시킴으로써 서버에 쿼리를 전송합니다
2. 서버에서는 쿼리를 받아서 처리한 후 그 결과에 따라 크기가 다른 이미지를 출력합니다
3. 이미지 onload 시에 js가 이미지의 사이즈를 읽습니다
4. 미리 준비해놓은 메시지 배열에서 이미지 사이즈를 인덱스로 하여 메시지를 얼럿합니다
파일
1. imghttp.js
<!--
// 기본 이미지
var sImg = 'http://ib.emimg.com/blog/imghttp/default.gif';
// 얼럿 메시지
var rMsg = new Array();
rMsg[0] = '즐겨찾기에 추가하였습니다.';
rMsg[1] = '이미 즐겨찾기 되어있습니다.';
rMsg[2] = '즐겨찾기는 1,024개까지만 가능합니다.';
// 쿼리 전송
function imgHttpPost(sItem,sURL)
{
var o = document.getElementById('imgHttp_' + sItem);
var s = new Date().getSeconds();
o.src = sURL + '#' + s;
}
// 결과 수신
function imgHttpGet(sItem)
{
var o = document.getElementById('imgHttp_' + sItem);
if(o.src != sImg)
{
var i = o.width - 1;
window.alert(rMsg[i]);
}
}
//-->
2. html
<div style="position:absolute; top:0px; left:0px; z-index:0">
<img id="imgHttp_favorite" src="http://ib.emimg.com/blog/imghttp/default.gif" onload="imgHttpGet('favorite')">
</div>
<a href="javascript:imgHttpPost('friend','/infoserv/favorite/write.html')">즐겨찾기 추가</a>
3. php (처리하는 부분)
<?php
function imgHttp($nX)
{
$nX++;
$sURL = 'http://ib.emimg.com/blog/imghttp/'.$nX.'x1.gif';
header('Location: '.$sURL);
exit;
}
// 결과값으로 이미지 출력함수 호출
.
.
.
$nRes = ...;
imgHttp($nRes);
?>
http://mytechnic.com/MT_Reference/view.php?language=PHP&seq=3255<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
처리하고 나서 페이지 내용이 바뀌지 않아도 되는 것이 많이 있습니다
이럴 경우 보통
숨은 팝업창을 띄워서 처리를 한 후 처리가 끝나면 숨은창을 다시 닫는 방식을 많이 사용합니다
그러나 이용자가 팝업창을 금지하였을 경우에는
추가버튼등을 눌러도 아무런 액션이 일어나지 않아
이용자는 이를 오류라고 인식하게됩니다
그래서 해결방법으로 생각해본 것이 이미지를 이용한 통신방법입니다
iframe을 이용한 방법도 있겠으나 iframe을 이용하면 window.history가 바뀌어서
이용자가 앞/뒤가기를 눌렀을 경우 다르게 가게 됩니다
이미지를 이용한 통신이고 기존의 xmlHttp와 유사한 기능을 하므로
일단 "imgHttp"라고 이름을 지었습니다
기능은 다음과 같이 동작합니다
1. img src를 대체시킴으로써 서버에 쿼리를 전송합니다
2. 서버에서는 쿼리를 받아서 처리한 후 그 결과에 따라 크기가 다른 이미지를 출력합니다
3. 이미지 onload 시에 js가 이미지의 사이즈를 읽습니다
4. 미리 준비해놓은 메시지 배열에서 이미지 사이즈를 인덱스로 하여 메시지를 얼럿합니다
파일
1. imghttp.js
<!--
// 기본 이미지
var sImg = 'http://ib.emimg.com/blog/imghttp/default.gif';
// 얼럿 메시지
var rMsg = new Array();
rMsg[0] = '즐겨찾기에 추가하였습니다.';
rMsg[1] = '이미 즐겨찾기 되어있습니다.';
rMsg[2] = '즐겨찾기는 1,024개까지만 가능합니다.';
// 쿼리 전송
function imgHttpPost(sItem,sURL)
{
var o = document.getElementById('imgHttp_' + sItem);
var s = new Date().getSeconds();
o.src = sURL + '#' + s;
}
// 결과 수신
function imgHttpGet(sItem)
{
var o = document.getElementById('imgHttp_' + sItem);
if(o.src != sImg)
{
var i = o.width - 1;
window.alert(rMsg[i]);
}
}
//-->
2. html
<div style="position:absolute; top:0px; left:0px; z-index:0">
<img id="imgHttp_favorite" src="http://ib.emimg.com/blog/imghttp/default.gif" onload="imgHttpGet('favorite')">
</div>
<a href="javascript:imgHttpPost('friend','/infoserv/favorite/write.html')">즐겨찾기 추가</a>
3. php (처리하는 부분)
<?php
function imgHttp($nX)
{
$nX++;
$sURL = 'http://ib.emimg.com/blog/imghttp/'.$nX.'x1.gif';
header('Location: '.$sURL);
exit;
}
// 결과값으로 이미지 출력함수 호출
.
.
.
$nRes = ...;
imgHttp($nRes);
?>
http://mytechnic.com/MT_Reference/view.php?language=PHP&seq=3255<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
게시글 목록
| 번호 | 제목 |
|---|---|
| 10853 |
JavaScript
속도를 위해 데이터를 접속자 메모리에
|
| 10852 | |
| 10850 | |
| 28848 | |
| 10849 |
JavaScript
백그라운드에음악걸기
|
| 28847 |
HTML
배경에 그림스타일지정
|
| 10846 |
기타
메신저형식의광고
2
|
| 28846 |
HTML
많이 쓰이는 자바스크립트
|
| 10845 | |
| 28845 |
HTML
마우스로 이미지크기 변경하기
|
| 10844 |
JavaScript
도메인 주소에 자동으로 www 붙이기 (php)
|
| 28844 |
HTML
다음부동산매물스크립트1
|
| 28843 |
HTML
다음부동산매물스크립트
|
| 10843 |
JavaScript
다각형이미지슬라이드쇼(익스네츠)
|
| 28842 |
HTML
날짜 형식 입력 받은 값 확인하기
|
| 10842 | |
| 28841 |
HTML
그림클릭시 레이어 띄우기
|
| 10841 |
MySQL
그림을 디비에 저장하는 방법
|
| 28840 |
HTML
그림 앨범 스크립트
|
| 28839 |
HTML
간단한 팝업오브젝트 예제
|
| 10840 |
JavaScript
가운데 정렬된 홈페이지에서 따라다니는 레이어
|
| 10839 | |
| 24791 | |
| 24789 | |
| 10836 |
기타
외부 링크 막기
2
|
| 28838 | |
| 24788 | |
| 24787 | |
| 24786 |
계약서
농지임대차계약서
|
| 28837 | |
| 28834 |
HTML
URL옆에 뜨는 숏컷아이콘만들기.
2
|
| 10835 |
JavaScript
클릭시 펼쳐지는 메뉴
|
| 10834 |
정규표현식
수수료계산
|
| 28833 |
HTML
기본적인 페이징
|
| 28829 |
HTML
만 19세 확인하기
3
|
| 10833 |
JavaScript
IE에서 쓰는 CSS filter 사이트 소개
|
| 10831 | |
| 10830 | |
| 10829 |
JavaScript
iconv 함수 사용시 일부 글자가 변환되지 않는경우
|
| 28828 |
HTML
금액에 점찍고 한글 표시하기
|
| 10828 | |
| 10827 |
MySQL
mysql link 추가로 만들기
|
| 10823 | |
| 10822 |
기타
[펌] SAMBA 설정
|
| 10821 |
JavaScript
1-1000 까지 누락된 숫자 구하기
|
| 10820 | |
| 28822 |
HTML
간단하게 만들어본 프레임워크
5
|
| 10814 | |
| 10812 |
Flash
vr기능-도와주셈
1
|
| 10811 | |
| 10810 |
JavaScript
mod_cband 간단 정리
|
| 10808 |
Flash
간단한 플래시 보완패치입니다.
1
|
| 10804 |
JavaScript
cs..cs2 버젼...윈도우즈 탐색기프리뷰 패치(psd,ai)...
3
|
| 10797 | |
| 28821 |
HTML
IeTagConvertor
|
| 10796 | |
| 10795 |
JavaScript
ncftp 서브 디렉토리 포함 모두 전송
|
| 10794 |
JavaScript
테이블 각 row 마우스오버시 색깔바꾸기
|
| 10792 | |
| 10789 |
MySQL
apache - mod_ssl 설치하기
2
|
| 10785 | |
| 10781 | |
| 10780 |
정규표현식
자바스크립트 이메일 체크 함수
|
| 28820 |
HTML
PHP에서 홈페이지 주소 검사
|
| 10776 |
PHP
문자셋(인코딩 바꾸는 팁
3
|
| 10769 |
JavaScript
당장써먹어야 할 팁) 앞으로 gif는 물러가고 png시대가 될거 같네요
6
|
| 10766 |
JavaScript
full-down메뉴[펌]
2
|
| 10765 |
JavaScript
플래쉬 무비 전체 화면으로 뜨게 하는 fscommand
|
| 10758 |
JavaScript
코딩시 테이블을 줄입시다.
6
|
| 28818 | |
| 10754 |
JavaScript
모든 폰트 설정 한번에 바꾸기(식별자 *의 사용법)
3
|
| 10753 | |
| 10750 | |
| 28817 |
HTML
자바스크립트에서 변수 없애기
|
| 10749 | |
| 10748 | |
| 10747 | |
| 10746 |
JavaScript
[소개]윈도우 미디어 플레이어 - 컨트롤 버튼
|
| 10740 |
JavaScript
iframe사용시 높이 자동 조정
5
|
| 10738 |
Flash
플래시 무비에 레이어 올리기
1
|
| 10735 |
JavaScript
도움말 띄우기 - 관리자 페이지에 있는 것을 추림
2
|
| 10734 | |
| 28812 | |
| 10730 | |
| 10726 | |
| 10725 |
기타
자바스크립트 기초문서
|
| 28811 | |
| 10724 |
JavaScript
숫자를 한글로 변환하기
|
| 10723 |
JavaScript
디렉터리 파일 찾기 순서 DirectoryIndex
|
| 10722 | |
| 10721 | |
| 10717 | |
| 10716 |
기타
Apache 보안 팁
|
| 10715 |
JavaScript
문서루트 위치 DocumentRoot
|
| 10713 |
Linux
lilo.conf
1
|
| 10712 | |
| 10711 | |
| 10710 |
JavaScript
웹 서버가 기다리는 포트(Port)
|
| 10709 |
JavaScript
logrotate.conf의 설정및 옵션에 대한 설명
|
| 10708 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기