'프로그래밍'에 해당되는 글 218건

  1. 2012.10.25 cakephp 사용법
  2. 2012.10.23 php 세션 유지시간 늘리기
  3. 2012.10.16 php4버전 이하에서 array_combine 함수
  4. 2012.10.11 간단하게 체크박스 전체체크,체크해제 컨트롤하는법
  5. 2012.10.09 utf-8 환경에서 메일 발송시 한글 깨질때
  6. 2012.09.12 그누보드 글쓰기에는 $wr_id 값을 사용하지 않습니다 오류해결
  7. 2012.09.04 utf -8 글자르기시 깨질때 .. 다른 펑션
  8. 2012.08.20 tinymce 기본 폰트 사이즈 변경
  9. 2012.08.17 택배배송조회 회사 목록
  10. 2012.08.17 제로보드 XE 이전시
  11. 2012.08.07 [브라우저] [html압축]간단한 브라우저 렌더링/전송속도 개선 설정
  12. 2012.08.06 jquery 이미지 롤링 1개만 돌아가게끔 처리하는것
  13. 2012.08.03 tinymce editor 사용시 엔터 P 태그를 BR로 바꾸는법
  14. 2012.07.27 전세계 국가 목록. 영어버전
  15. 2012.07.17 엔터 눌러도 submit 하지 않게 하기
  16. 2012.07.10 유튜브 영상 퍼가기 후 자동재생/원하는부분/플레이리스트/하단 툴바없애기
  17. 2012.07.09 다음 에디터 이용시 글삭제 할때 첨부 이미지도 같이삭제하게 하는 처리
  18. 2012.07.02 jquery 마우스 우클릭 차단 (1)
  19. 2012.06.26 htaccess 설정으로 크롤러 (사이트복사 ) 막는 소스
  20. 2012.06.13 jquery 이미지 롤링
  21. 2012.06.12 jquery 해당위치로 스크롤 되게 하는 펑션
  22. 2012.05.24 jquery 이미지 마우스 휠 롤링
  23. 2012.05.20 스크립트 빈값체크
  24. 2012.04.20 어떤 스마트폰으로 접속했는지 알아내는 소스 , (안드로이드 아이폰 )
  25. 2012.03.21 일본어 전각/반각 체크 스크립트
  26. 2012.03.19 DTD 설정이 있는경우 퀵메뉴
  27. 2012.03.19 iframe 자동 리사이즈
  28. 2012.03.09 a,img태그 점선 투명하게 만들기
  29. 2012.03.09 iframe 배경색 투명
  30. 2012.02.12 window.open post로 값넘기기

cakephp 사용법

Posted by 비회원 프로그래밍/PHP : 2012.10.25 11:12

1.다운

http://cakephp.org/

 

2.압축해제

 

3.서버에올리긔

 

4./app/Config/database.php.default 복사 => /app/Config/database.php 생성 후

$default 내에 DB 계정정보 입력.

 

5./app/Config/core.php 내에 187 line , 192 line

Security.salt = > 암호화 할 키값. 영문+숫자

Security.cipherSeed => 암호화 할 키값2 . 숫자로 구성

 

 

신고

댓글을 달아 주세요

php 세션 유지시간 늘리기

Posted by 비회원 프로그래밍/PHP : 2012.10.23 11:32

cookie는 창이 꺼지면 처리되게끔 할수있는데

session 도 cookie랑 동일하게 묶어서 사용하지 않는이상 연결하기 힘들다.

그때 간단하게 session 유지시간을 늘리는 방법

ㅇㅇ;

 


session_cache_expire(36000);   // <<-- 이거
session_start();
#session_cache_expire();   // <<-- 여 앞에 echo 를 때려서 남은 시간을 확인할 수 있다.

 

ㅇㅇ.

 

 

 

신고

댓글을 달아 주세요

php4버전 이하에서 array_combine 함수

Posted by 비회원 프로그래밍/PHP : 2012.10.16 11:04



function array_combine($arr1, $arr2) {
    $out = array();
   
    $arr1 = array_values($arr1);
    $arr2 = array_values($arr2);
   
    foreach($arr1 as $key1 => $value1) {
        $out[(string)$value1] = $arr2[$key1];
    }
   
    return $out;
}

ㅇㅇ

그러하다..

신고

댓글을 달아 주세요


<script>
$(function(){
 $(".overchk_all").change(function(){
  if($(this).attr('checked') == 'checked'){
   $('.overchk').attr('checked','checked');
  }else{
   $('.overchk').removeAttr('checked');
  }
 });
});
</script>

 

 

<input type="checkbox" name="overchk[]" class="overchk_all"> 전체체크

<br >

 

<input type="checkbox" name="overchk1" class="overchk"> 1

<input type="checkbox" name="overchk2" class="overchk"> 2

<input type="checkbox" name="overchk3" class="overchk"> 3

<input type="checkbox" name="overchk4" class="overchk"> 4

<input type="checkbox" name="overchk5" class="overchk"> 5

 

class 따라서 값이 바뀔때마다 처리해주는 거임

ㅇㅇ

 

신고

댓글을 달아 주세요

utf-8 환경에서 메일 발송시 한글 깨질때

 

제목,이름은

$제목 = '=?UTF-8?B?'.base64_encode( $제목 ).'?=';

여기서 맨 뒤의 .'?=' 를 빼먹지말고 써야함. 안그러면 이름에 =?UTF-8?B?Lm1023YFDA 이런걸로 나가버림.

 

내용은

$내용 = chunk_split(base64_encode( $내용 ));

 

ㅇㅇ.

 

신고

댓글을 달아 주세요

그누보드 글쓰기에는 $wr_id 값을 사용하지 않습니다 오류해결

 

간단하다.


write.skin.php 마지막에 있는
-----------------------------------------
<?
    if ($g4[https_url])
        echo "f.action = '$g4[https_url]/$g4[bbs]/write_update.php';";
    else
        echo "f.action = './write_update.php';";
    ?>
-----------------------------------------

-----------------------------------------
function fwrite_submit(f)
{
-----------------------------------------
이것 다음으로 옮겨주면 됩니다.

 

 

만약. 이것을 했는데도 안된다?

왼쪽 하단에 스크립트 오류가 뜨는지 확인해보고,

만약 스크립트 오류가 발생하는것이라면

form submit 하는 과정에서 action 값을 지정해서 넘어가야 되는 부분이 있는데

스크립트 오류때문에 action 값이 지정되지 않은 상태로 페이지가 이동되어 생기는 문제임.

 

스크립트 다른것 다 없애보고도 안되면... 뭐.. ㅇㅇ.;

난 여기서 잘 됐다.

 

신고

댓글을 달아 주세요


 function jp_cut_str($msg, $cut_size,$showmore="...") {
  $temp_msg=mb_substr(strip_tags($msg),0,$cut_size, 'UTF-8');
  if(mb_strlen($msg, "UTF-8")>$cut_size){$temp_msg.="...";}
  return $temp_msg;
 }

 

 

//--------------------------------------------- 문자열 특정 길이로 자르기 리턴 ---------------------------
function bear3StrCut($str,$len,$tail="..."){
for($i=0;$i<$len;$i++){
if((Ord($str[$i])<=127)&&(Ord($str[$i])>=0)){$result .=$str[$i];}
else if((Ord($str[$i])<=223)&&(Ord($str[$i])>=194)){$result .=$str[$i].$str[$i+1];$i+1;}
else if((Ord($str[$i])<=239)&&(Ord($str[$i])>=224)){$result .=$str[$i].$str[$i+1].$str[$i+2];$i+2;}
else if((Ord($str[$i])<=244)&&(Ord($str[$i])>=240)){$result .=$str[$i].$str[$i+1].$str[$i+2].$str[$i+3];$i+3;}
}
return $result.$tail;
}

신고

댓글을 달아 주세요

설치가 된 폴더 /css 들어가면

content.css 내에

body / td / pre 태그 css가 있는데

이를 font-size: 10px; => font-size: 12px; 로 변경처리하면 됨.

ㅇㅇ;

 

신고

댓글을 달아 주세요

택배배송조회 회사 목록

Posted by 비회원 프로그래밍/Javascript : 2012.08.17 14:46

출처: http://www.sitehis.com/spb3/sboard3/read.php?db=talk&cateuid=8&uid=296

 

 

택배배송조회 관련 정보를 가끔 수집하여 정리해보겠습니다.

네이버 조회 페이지

택배회사종류 대한통운

 

 

 

<script>
var dtd_companys = new Array();
dtd_companys["우체국택배"] = new Array(13, "http://service.epost.go.kr/trace.RetrieveRegiPrclDeliv.postal?sid1=","1234567890123 (13자리)","1588-1300","http://parcel.epost.go.kr");
dtd_companys["대한통운"] = new Array(10, "http://www.doortodoor.co.kr/servlets/cmnChnnel?tc=dtd.cmn.command.c03condiCrg01Cmd&invc_no=","1234567890 (10자리)", "1588-1255", "http://www.doortodoor.co.kr");
dtd_companys["한진택배"] = new Array(12, "http://www.hanjin.co.kr/Delivery_html/inquiry/result_waybill.jsp?wbl_num=", "1234567890 (10,12자리)", "1588-0011", "http://hanex.hanjin.co.kr");
dtd_companys["로젠택배"] = new Array(11, "http://www.ilogen.com/iLOGEN.Web.New/TRACE/TraceView.aspx?gubun=slipno&slipno=", "12345678901 (11자리)","1588-9988", "http://www.ilogen.com");
dtd_companys["현대택배"] = new Array(12, "http://www.hlc.co.kr/hydex/jsp/tracking/trackingViewCus.jsp?InvNo=", "1234567890 (10,12자리)", "1588-2121", "http://www.hlc.co.kr");
dtd_companys["KG옐로우캡택배"] = new Array(11, "http://www.yellowcap.co.kr/custom/inquiry_result.asp?invoice_no=", "12345678901 (11자리)", "1588-0123", "http://www.yellowcap.co.kr");
dtd_companys["KGB택배"] = new Array(10, "http://www.kgbls.co.kr/sub5/trace.asp?f_slipno=", "1234567890 (10자리)", "1577-4577", "http://www.kgbls.co.kr");
dtd_companys["EMS"] = new Array(13, "http://service.epost.go.kr/trace.RetrieveEmsTrace.postal?ems_gubun=E&POST_CODE=", "EE123456789KR (13자리)", "1588-1300", "http://service.epost.go.kr");
dtd_companys["DHL"] = new Array(0, "http://www.dhl.co.kr/publish/kr/ko/eshipping/track.high.html?pageToInclude=RESULTS&type=fasttrack&AWB=", "1234567890 (10자리)", "1588-0001", "http://www.dhl.co.kr");
dtd_companys["한덱스"] = new Array(10, "http://btob.sedex.co.kr/work/app/tm/tmtr01/tmtr01_s4.jsp?IC_INV_NO=", "1234567890 (10자리)", "1588-9040", "http://www.e-handex.co.kr");
dtd_companys["FedEx"] = new Array(12, "http://www.fedex.com/Tracking?ascend_header=1&clienttype=dotcomreg&cntry_code=kr&language=korean&tracknumbers=", "123456789012 (12자리)", "080-023-8000", "http://www.fedex.com/kr");
dtd_companys["동부익스프레스"] = new Array(12, "http://www.dongbuexpress.co.kr/Html/Delivery/DeliveryCheckView.jsp?item_no=", "123456789012 (12자리)", "1588-8848", "http://www.dongbuexpress.co.kr");
dtd_companys["CJ GLS"] = new Array(12, "http://nexs.cjgls.com/web/service02_01.jsp?slipno=", "123456789012 (12자리)", "1588-5353", "http://www.cjgls.co.kr");
dtd_companys["UPS"] = new Array(25, "http://www.ups.com/WebTracking/track?loc=ko_KR&InquiryNumber1=", "M1234567890 (최대 25자리)", "1588-6886", "http://www.ups.com/content/kr/ko/index.jsx" );
dtd_companys["하나로택배"] = new Array(10, "http://www.hanarologis.com/branch/chase/listbody.html?a_gb=center&a_cd=4&a_item=0&fr_slipno=", "1234567890 (최대 10자리)", "1577-2828", "http://www.hanarologis.com");
dtd_companys["대신택배"] = new Array(13, "http://home.daesinlogistics.co.kr/daesin/jsp/d_freight_chase/d_general_process2.jsp?", "1234567890123 (13자리)", "043-222-4582", "http://apps.ds3211.co.kr");
dtd_companys["경동택배"] = new Array(11, "http://www.kdexp.com/sub4_1.asp?stype=1&p_item=", "12345678901 (최대11자리)", "031-460-2400", "http://www.kdexp.com/");
dtd_companys["이노지스택배"] = new Array(13, "http://www.innogis.net/trace02.asp?invoice=", "1234567890123 (최대13자리)", "1566-4082", "http://www.innogis.net/");
dtd_companys["일양로지스택배"] = new Array(9, "http://www.ilyanglogis.com/functionality/tracking_result.asp?hawb_no=", "123456789 (9자리)", "1588-0002", "http://www.ilyanglogis.com/");
dtd_companys["CVSnet 편의점택배"] = new Array(10, "http://was.cvsnet.co.kr/src/ctod_status.jsp?invoice_no=", "1234567890 (10자리)", "1566-1025", "http://www.cvsnet.co.kr/");
dtd_companys["TNT Express"] = new Array(13, "http://www.tnt.com/webtracker/tracking.do?respCountry=kr&respLang=ko&searchType=CON&cons=", "GE123456789WW (9,13자리)", "1588-0588", "http://www.tnt.com/express/ko_kr/site/home.html");
dtd_companys["HB한방택배"] = new Array(12, "http://www.hbtb.co.kr/search/s_search.asp?f_slipno=", "123456789012 (12자리)", "1588-1059", "http://www.hbtb.co.kr/");
dtd_companys["GTX"] = new Array(12, "http://www.gtx2010.co.kr/del_inquiry_result.html?s_gbn=1&awblno=", "123456789012 (12자리)", "1588-1756", "http://www.gtx2010.co.kr");

var dtd_select_obj = document.getElementById("dtd_select");
var company = dtd_select_obj.options[dtd_select_obj.selectedIndex].value;
if(company == "" ) company = "우체국택배";

function doorToDoorSearch()
{
 var query_obj = document.getElementById('dtd_number_query');
 var query = query_obj.value;
 query = query.replace(' ', '');
 var url = "";
 
 /* 운송장 번호 값 확인 */
 if (company == "UPS") {
  var pattern1 = /^[0-9a-zA-Z]{9,12}$/i;
  var pattern2 = /^[0-9a-zA-Z]{18}$/i;
  var pattern3 = /^[0-9a-zA-Z]{25}$/i;
  if (query.search(pattern1) == -1 && query.search(pattern2) == -1 && query.search(pattern3) == -1) {
   alert(company+"의 운송장 번호 패턴에 맞지 않습니다.");
   query_obj.focus();
   return false;
  }
 } else if (company == "EMS") {
  var pattern = /^[a-zA-Z]{2}[0-9]{9}[a-zA-Z]{2}$/;
  if (query.search(pattern) == -1) {
   alert(company+"의 운송장 번호 패턴에 맞지 않습니다.");
   query_obj.focus();
   return false;
  }
 } else if (company == "한진택배" || company == "현대택배") {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해주세요.");
   query_obj.focus();
   return false;
  } else if ( query.length != 10 && query.length != 12 ) {
   alert(company+"의 운송장 번호는 10자리 또는 12자리의 숫자로 입력해주세요.");
   query_obj.focus();
   return false;
  }
 } else if (company == "경동택배") {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해주세요.");
   query_obj.focus();
   return false;
  } else if (query.length != 9 && query.length != 10 && query.length != 11) {
   alert(company+"의 운송장 번호는 9자리 또는 10자리 또는 11자리의 숫자로 입력해주세요.");
   query_obj.focus();
   return false;
  }
 } else if (company == "이노지스택배") {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해주세요.");
   query_obj.focus();
   return false;
  } else if (query.length > 13) {
   alert(company+"의 운송장 번호는 최대 13자리의 숫자로 입력해주세요.");
   query_obj.focus();
   return false;
  }
 } else if (company == "TNT Express") {
  var pattern1 = /^[a-zA-Z]{2}[0-9]{9}[a-zA-Z]{2}$/;
  var pattern2 = /^[0-9]{9}$/;
  if (query.search(pattern1) == -1 && query.search(pattern2) == -1) {
   alert(company+"의 운송장 번호 패턴에 맞지 않습니다.");
   query_obj.focus();
   return false;
  }
 } else {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해 주세요.");
   query_obj.focus();   
   return false;
  } else if (dtd_companys[company][0] > 0 && dtd_companys[company][0] != query.length) {
   alert(company+"의 운송장 번호는 "+dtd_companys[company][0]+"자리의 숫자로 입력해 주세요.");
   query_obj.focus();   
   return false;
  }
 }
 /* 링크만들기 */
 if (company == "대신택배") {
  url = dtd_companys[company][1];
  url+= "billno1="+query.substring(0,4);
  url+= "&billno2="+query.substring(4,7);
  url+= "&billno3="+query.substring(7,13);
 } else if (dtd_companys[company][1]) {
  url = dtd_companys[company][1]+query;
 }
 window.open(url,"_blank");
}

function isNumeric(s) {
 var count = 0;
 for (i = 0; i < s.length; i++) {

  if(s.charAt(i)<'0' || s.charAt(i)>'9') {
   count++;
  }
 }
 if(count > 0) {
  return 0;
 } else {
  return 1;
 }
}

function SetDeleveryContents(idx) {
 company = dtd_select_obj.options[idx].value;
 document.getElementById("Dcs01").innerHTML = dtd_companys[company][2];
 document.getElementById("Dcs02").innerHTML = company;
 document.getElementById("Dcs03").innerHTML = dtd_companys[company][3];
 document.getElementById("Dcs04").href  = dtd_companys[company][4];
 document.getElementById("Dcs04").target  = "_blank";
 
}

function checkValidDoor(query) {
 /* 운송장 번호 값 확인 */
 if (company == "UPS") {
  var pattern1 = /^1z[0-9]{16}$/i;
  var pattern2 = /^M[0-9]{10}$/;
  if (query.search(pattern1) == -1 && query.search(pattern2) == -1) {
   lert(company+"의 운송장 번호 패턴에 맞지 않습니다.");
   document.door_to_door_frm.dtd_number_query.focus();
   return false;
  }
 } else if (company == "EMS") {
  var pattern = /^[a-zA-z]{2}[0-9]{9}[a-zA-z]{2}$/;
  if (query.search(pattern) == -1) {
   alert(company+"의 운송장 번호 패턴에 맞지 않습니다.");
   document.door_to_door_frm.dtd_number_query.focus();
   return false;
  }
 } else if (company == "SC 로지스" || company == "한진택배" || company == "현대택배") {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해주세요.");
   document.door_to_door_frm.dtd_number_query.focus();
   return false;
  } else if ( query.length != 10 && query.length != 12 ) {
   alert(company+"의 운송장 번호는 10자리 또는 12자리의 숫자로 입력해주세요.");
   document.door_to_door_frm.dtd_number_query.focus();
   return false;
  }
 } else {
  if (!isNumeric(query)) {
   alert("운송장 번호는 숫자만 입력해 주세요.");
   document.door_to_door_frm.dtd_number_query.focus();   
   return false;
  } else if (dtd_companys[company][0] > 0 && dtd_companys[company][0] != query.length) {
   alert(company+"의 운송장 번호는 "+dtd_companys[company][0]+"자리의 숫자로 입력해 주세요.");
   document.door_to_door_frm.dtd_number_query.focus();   
   return false;
  }
 }

}

</script>
<form name="door_to_door_frm" onSubmit="doorToDoorSearch();return false;">
  <select name="dtd_select" id="dtd_select" >
    <option value="경동택배" selected>경동택배</option>
    <option value="대신택배">대신택배</option>
    <option value="대한통운">대한통운</option>
    <option value="동부익스프레스">동부익스프레스</option>
    <option value="로젠택배">로젠택배</option>
    <option value="우체국택배">우체국택배</option>
    <option value="이노지스택배">이노지스택배</option>
    <option value="일양로지스택배">일양로지스택배</option>
    <option value="하나로택배">하나로택배</option>
    <option value="한덱스">한덱스</option>
    <option value="한진택배">한진택배</option>
    <option value="현대택배">현대택배</option>
    <option value="CJ GLS">CJ GLS</option>
    <option value="CVSnet 편의점택배">CVSnet 편의점택배</option>
    <option value="DHL">DHL</option>
    <option value="EMS">EMS</option>
    <option value="FedEx">FedEx</option>
    <option value="GTX">GTX</option>
    <option value="HB한방택배">HB한방택배</option>
    <option value="KG옐로우캡택배">KG옐로우캡택배</option>
    <option value="KGB택배">KGB택배</option>
    <option value="TNT Express">TNT Express</option>
    <option value="UPS">UPS</option>
  </select>
  <input type="text" style="width:201px;" class="input_off" name="dtd_number_query" id="dtd_number_query" value="'-'를 제외하고 입력하세요." onClick="this.value=''">
  <input type="submit" value="조회">
</form>
 


 

 

신고

댓글을 달아 주세요

제로보드 XE 이전시

Posted by 비회원 프로그래밍/PHP : 2012.08.17 10:20

1.폴더권한 확인 707

2.호스팅 이전후 할일

/www/xe/files/config에서 db.config.php를 열어서 수정 할 것


 

신고

댓글을 달아 주세요

출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=53266&sca=%BA%EA%B6%F3%BF%EC%C0%FA&page=2 

송효진님

1줄요약: 최상단에 ob_start('ob_gzhandler'); 

http://www.whatsmyip.org/http-compression-test/

에서 잘 압축되었는지 확인 ㅇㅇ;


 

 

php 는 flush() 를 하기전까지는 아무것도 출력하지 않습니다.
그래서 최종 결과물의 헤더에는 Content-Length 가 있죠.

flush() 를 하는 순간 chunked 헤더를 날리고,
현재까지 버퍼의 내용을 출력합니다.
Content-Length 대신 chunk 데이터 앞에 chunk 크기가 주어집니다.

그러면 브라우저가 그것을 받아서 화면에 뿌려주죠.
페이지가 완성되지 않아도 화면을 구성할 수 있게되는 것입니다.

문제는 익스플로러가 이런 chunk 되지 않은
plain text 로 넘어오는 정보마저 받다말고 렌더링을 하려 하는것 같다는 것입니다.

해외에서의 접속을 좀 빨리 해볼 생각으로 페이지 압축전송을 했다가 우연히 발견하게 되었습니다.

다중중첩테이블 등에 의해 렌더링에 자원소모가 상당히 심한 페이지었는데,
압축전송을 한것 만으로 익스플로러에서는 눈에 띄게 렌더링이 빨라졌습니다.
(불여우에서는 원래 빨랐습니다. 그래도 약간의 향상은 있더군요.)

해외에서의 접속에도 생각 이상의 효과를 봤습니다.
전송속도를 체크해 보려고 수십메가의 파일을 다운로드해 봐도,
국내에서 다운받는것과 비슷한 속도가 났는데,
유독 php 페이지만 느리게 출력됐었습니다.
단지 압축전송을 한것만으로 그렇게 빨라지는것이 이해되지는 않지만,
결과가 좋아 만족합니다.
(서버는 한국, 대상은 일본이고,
한일간의 주요 네트워크 장비중 한->일 방향에서,
텍스트 필터링을 하는 뭔가가 있지 않나 생각해봅니다.)


결론은 압축전송 입니다.
php 에서 간단히 구현할 수 있는것이
ob_gzhandler 입니다.
zlib 를 설치하면 사용할 수 있습니다.

ob_start('ob_gzhandler');
하면,
출력되는 모든 정보가 압축이 되고,
브라우저가 이를 풀어서 보여줍니다.

이렇게 하면 압축이 되었으므로,
모두 받아서 풀기전까지는 브라우저가 내용을 보여줄 수 없습니다.

이것의 단점은 flush() 의 불가 라는 점입니다.
ob_flush() 는 무시되고,
flush() 를 하면 chunked 헤더를 날리지만,
결국에는 하나로 압축되어 한덩어리의 chunk 데이터만 보내집니다.

해외에서의 접속에서 flush() 가 필요하다면,
압축전송을 포기하거나,
직접 작성할 수 밖에 없습니다.

ob_handler 와 ob_flush 를 직접 작성하면,
flush() 와 연동해서 충분히 제작 가능합니다.

템플릿을 사용한다면 flush() 를 위해
ob_start 를 안하고 있다가,
템플릿 출력시에 동작하게 하면 간단히 적용하기에 좋을것입니다.

---------------------
일이 손에 안잡혀서 팁을 씁니다...

 

신고

댓글을 달아 주세요

jquery 이미지 롤링 1개만 돌아가게끔 처리하는것

 

 

 

jqbanner.css

 

jqbanner.js

<script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script>
<script src="/pps/js/jqbanner.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" media="screen" href="/pps/css/jqbanner.css" />
<center>
<div id="jqb_object">
 <div class="jqb_slides">
  <div class="jqb_slide"><img src="/pps/images/jpmain_content1.jpg"  width="1200" height="450"></div>
  <div class="jqb_slide"><img src="/pps/images/jpmain_content2.jpg"  width="1200" height="450"></div>
  <div class="jqb_slide"><img src="/pps/images/jpmain_content3.jpg"  width="1200" height="450"></div>
 </div>
 <div class="jqb_bar">
  <SPAN id="btn_prev"><img src="/pps/images/leftbt.png" width="58" height="90"></SPAN>
 </div>
 <div class="jqb_bar2">
  <SPAN id="btn_next"><img src="/pps/images/rightbt.png" width="58" height="90"></SPAN>
 </div>
</div>
</center>

신고

댓글을 달아 주세요

출처 : http://mara.tistory.com/136

 

 

tinyMCE.init ({

 
    forced_root_block : false,
    force_br_newlines : true,
    force_p_newlines : false,

 

})

 

 

init 된 항목 내에 br_newlines : true

p_newlines : false 이것으로 엔터 시 p 태그가 아닌 br 태그로 삽입되는것으로 처리됨.

 

 

신고

댓글을 달아 주세요

전세계 국가 목록. 영어버전

Posted by 비회원 프로그래밍/OTHER TIP : 2012.07.27 15:00

걍 찾아다 갖고옴.

 

국가목록_영어.txt

Afghanistan
Albania
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Austria
Azerbaijan
TheBahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
Brunei
Bulgaria
Burkina Faso
Burma
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Central African Republic
Chad
Chile
China
Colombia
Comoros
Democratic Republic of the Congo
Republic of the Congo
Costa Rica
Cote dIvoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
East Timor (see Timor-Leste)
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Fiji
Finland
France
Gabon
The Gambia
Georgia
Germany
Ghana
Greece
Grenada
Guatemala
Guinea
Guinea-Bissau
Guyana
Haiti
Holy See
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran
Iraq
Ireland
Israel
Italy
Jamaica
Japan
Jordan
K
Kazakhstan
Kenya
Kiribati
Kosovo
Kuwait
Kyrgyzstan
Laos
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Macau
Macedonia
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Mauritania
Mauritius
Mexico
Micronesia
Moldova
Monaco
Mongolia
Montenegro
Morocco
Mozambique
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Zealand
Nicaragua
Niger
Nigeria
North Korea
Norway
Oman
Pakistan
Palau
Palestinian Territories
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Poland
Portugal
Qatar
Romania
Russia
Rwanda
Saint Kitts and Nevis
Saint Lucia
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Korea
South Sudan
Spain
Sri Lanka
Sudan
Suriname
Swaziland
Sweden
Switzerland
Syria
Taiwan
Tajikistan
Tanzania
Thailand
Timor-Leste
Togo
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Tuvalu
Uganda
Ukraine
United Arab Emirates
United Kingdom
Uruguay
Uzbekistan
Vanuatu
Venezuela
Vietnam
Yemen
Zambia
Zimbabwe

신고

댓글을 달아 주세요

출처 : http://u2m.kr/129

 

<input type="text" name="find" onKeyDown="javascript:if (event.keyCode == 13) window.event.returnValue = false;">

 

신고

댓글을 달아 주세요

출처 : http://treefrog.tistory.com/91

 

 

유투브 동영상 퍼가고 다른 곳에 올릴때
자동재생, 원하는 부분부터 재생, 연속연상 재생등을 알아보겠습니다.


 


 

 
원하는 영상에서 공유 - 소스 코드 클릭하시면 소스가 보입니다.

<iframe width="640" height="360" src="http://www.youtube.com/embed/UYmwro7upvc" frameborder="0" allowfullscreen></iframe>

여기서 빨간색 부분이 영상의 고유 ID 입니다. 저 뒤에 몇 가지만 붙여 주면 됩니다.


1.자동재생하기 ?autoplay=1

2.원하는 부분부터 재생하기 ?start=70 (초로 계산합니다. 1분10초부터)

3.영상이어붙이기 ?playlist=고유ID,고유ID,고유ID...................
( , 콤마로 계속 붙여주시면 됩니다.)

고유ID는 / 다음 부분 입니다. 영상 마다 다 다르겠죠?




?는 맨 앞에 한 번만 붙여주시면 됩니다.

1번만 하겠다 하면은 ?autoplay=1 만 해주시면 자동재생 됩니다. 
예)
<iframe width="640" height="360" src="http://www.youtube.com/embed/UYmwro7upvc?autoplay=1" frameborder="0" allowfullscreen></iframe> 

1,2번만 원하는 경우에는 ?autoplay=1&start=70 이렇게 & 으로 이어 주시면 됩니다.
예)<iframe width="640" height="360" src="http://www.youtube.com/embed/UYmwro7upvc?autoplay=1&start=70" frameborder="0" allowfullscreen></iframe>  

2,3번 다 원하는 경우에는 ?start=70&playlist=-vhe_6salIs,QkWjHO7aEac
예)<iframe width="640" height="360" src="http://www.youtube.com/embed/UYmwro7upvc?start=70&playlist=-vhe_6salIs,QkWjHO7aEac" frameborder="0" allowfullscreen></iframe>   


원하는대로 응용이 가능하겠죠~?


HD로 재생 퍼가기를 한다면 HD로 재생에 체크를 하면 소스가 아래 처럼 됩니다.
<iframe width="1280" height="720" src="http://www.youtube.com/embed/UYmwro7upvc?hd=1" frameborder="0" allowfullscreen></iframe>

?hd=1이 자동으로 생성 되었으니 그 뒤로 & 하고 뒤에 원하는 명령 입력하시면 되겠죠~?
예)<iframe width="1280" height="720" src="http://www.youtube.com/embed/UYmwro7upvc?hd=1&autoplay=1&start=70" frameborder="0" allowfullscreen></iframe> 



좀더 편하게 하시려면 '동영상이 완료되면 추천 동영상 표시' 체크해제 해주시면

고유 주소 뒤에 ?rel=0 으로 주소가 바뀝니다. 그 뒤로 바로 &autoplay=1 등

원하는 방법 넣어주시면 됩니다.

예)<iframe width="560" height="315" src="http://www.youtube.com/embed/UYmwro7upvc?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>




아래는 1,2,3,번을 모두 적용한 영상입니다.(예제보기 클릭)
*(자동재생되고 1분10초부터 시작 그리고 설정한 다른 영상 연속재생) 

예제보기




iframe 소스가 먹히지 않는 게시판이 있는데 (디시인사이드 등등..)
그럴때는 아래와 같이 하시면 됩니다. '이전 소스 코드 사용' 에 체크 하고
 

 

<embed ~ </embed> 부분만 사용합니다.
<embed src="http://www.youtube.com/v/UYmwro7upvc?version=3&amp;hl=ko_KR" type="application/x-shockwave-flash" width="853" height="480" allowscriptaccess="always" allowfullscreen="true"></embed> 


ko_KR 뒤로 원하는 것 &autoplay=1 / &start=시간 / &playlist=고유ID,고유ID......

하시면 됩니다. (HD로 재생이면 hd=1 뒤로 & 하고 붙이면 되고요)



정리 해보면

1.자동재생 >> &autoplay=1

2.원하는 부분부터 재생 >> &start=시간 (초단위로 계산 1분10초=70)

3.영상붙이기 >> &playlist=고유ID (여러개 붙이기는 , 콤마로 고유ID,고유ID, .....)


그 외


&showinfo=0 (상단제목 없애기)

&controls=0 (하단 컨트롤바 없애기)

도 있습니다.


 

신고

댓글을 달아 주세요

다음 에디터 이용시 글삭제 할때 첨부 이미지도 같이삭제하게 하는 처리

 

 

http://code.google.com/p/daumopeneditor/issues/detail?id=214

http://www.silverwolf.co.kr/9643

http://blog.daum.net/ilryu/7094513

 

 

이미지 첨부기능 구현에 있어 몇가지 질문이 있습니다.


테스트환경은 IE7, FF 3.6.10, JQuery Javascript 라이브러리, Daumeditor 5.4.9입니다.

1.
이미지 첨부후 에디터에서 전체삭제 혹은 리스트에서 삭제하면 에디터 캔버스에서 삭제가 되지 않습니다. 샘플팝업으로 테스트할경우는 정상작동합니다.
http://hanmin2.hosting2003.co.kr/daumeditor/daumeditor.html
위 주소로 테스트가능합니다.
사진첨부시 삭제안됨. 파일첨부시 삭제됨.


2.
사진첨부시 IE에서 업로드된 사이즈를 가져오지 못합니다.
196번 게시물에서 문의했던 부분인데 변수문제로 안되는경우가 있다고 말씀해주셨는데
다시 첨부해주신 파일도 역시 같은 현상입니다. IE에서는 안되고 FF에서는 정상작동합니다. 이부분은 다시 한번 확인 좀 해주시기 바랍니다.^^

3.
첨부파일의 전체용량이 정확하지 않은것 같습니다. (196게시물에 첨부해주신 파일로 테스트해본결과)
예들 들어 300바이트 이미지를 3개 업로드하면 900바이트....
에디터 첨부 리스트에는 3개가 등록되어있는 상태일때 그중 하나를 리스트에서 제거하면
총 용량이 600바이트가 되어야 될것 같은데. 첨부해주신 소스로 확인 결과 900바이트가
나오고 계속적으로 첨부할시 총 업로드용량이 증가하기만 합니다. 즉 리스트상에서 삭제를 해도 실제적인 삭제 처리는 되지 않는다고 보여집니다. 첨부파일의 용량을 제한하는 기능을 구현할경우 꼭 필요한 기능이 아닐까 싶습니다.

4.
3번과 동일선상인듯한데...
에디터의 첨부파일 리스트에서 삭제시 호출되는 함수들의 순서와 전반적인 처리과정을 알고 싶습니다. 의도는 첨부된이미지가 리스트에서 삭제될때 실제 서버에서도 삭제하는 기능을 삽입하고 싶은데 그작업을 하려면 처리되는 과정을 알아야 하지 않을까 싶습니다.^^


1.
URL 감사합니다. 알려주신 URL을 통해 문제를 확인을 해보았습니다. 해당 문제는 두가지 부분이 문제점으로 나타납니다.
첫번째는 이미지 주소에 한글이나 특수문자가 들어갈 경우 에디터 캔버스에서 해당 이미지를 인식하지 못하는 문제입니다.
저의 소견으로는 파일 경로를 서버측에서 파일명을 영문과 숫자로만 이루어지도록 정해주는 방식이 제일 좋을 것 같습니다.
두번째 문제는 IE 일 경우에는 경로 부분이 도메인까지 포함하는 풀 경로로 지정해주셔야 하는 부분입니다.
_mockdata 에서 이미지 경로를 full 경로로 주셔야 정상동작합니다. 즉, "/upfile/imagedata/1.png" 의 경우 "http://test.com/upfile/imagedata/1.png" 으로 설정해주셔야 합니다.

문제를 좀 더 자세하게 설명드리면 아래와 같습니다.
Editor.getSidebar().getAttachments("image")[0].regHtml 로 접근할 수 있는 첨부 파일의 정규표현식으로
Editor.getCanvas().getContent() 을 통해 가져온 캔버스의 HTML 에 해당하는 표현식이 있는지 확인하는 과정을 가집니다.
그런데 Editor.getCanvas().getContent() 가 캔바스 영역의 innerHTML 속성으로 브라우저 별로 동작이 상이합니다.
IE 인 경우 경로를 중간까지만 세팅해주어도 풀 경로로 반환이 되는 부분이 있고, FF 의 경우 한글이나 특수 문자의 경우 %EC%9C 와 같은 형태로 변경되어 반환합니다.
그런 부분 때문에 처음부터 파일 경로를 영문과 숫자로만 이루어진 풀 경로로 지정해 주는 방식이 구현이 수월할 것으로 보입니다.


2.
죄송합니다. 해당 문제를 저희가 재현하지 못하여 도움을 드리기 어려운 부분이 있습니다. 가능하다면 1번 질문처럼 해당하는 URL을 받아보고 싶습니다. 가능하신가요? ㅠㅠ


3.
네, 맞습니다. 죄송합니다. 제가 실수하여 그 부분을 누락하였습니다.
소스에서 업로드 된 파일의 용량 합계를 구하는 부분이 있습니다. 그 부분에서 아래 코드처럼 deletedMark 변수를 확인하여 삭제된 파일의 경우 용량 계산에서 제외시켜야 될 것 같습니다.
{code}
		for (i = 0; i < len; i += 1) {
			if (list[i].deletedMark != true) {
				sum += list[i].data.filesize;
			}
		}
{code}


4.
네, 해당 부분의 구현은 아래 이슈에 설명되어 있습니다. 이벤트를 감시하여 해당 기능을 수행하시면 되실 것으로 보입니다.
http://code.google.com/p/daumopeneditor/issues/detail?id=133
그리고, 자세한 부분은 아래와 같습니다.
파일 삭제는 삭제 버튼을 눌렀을 때 /daumeditor-5.4.0/_js_source/trex/attachbox/attachbox_ui.js 의 178라인의 entry.execRemove() 함수 호출에서 시작됩니다.
해당 함수는 /daumeditor-5.4.0/_js_source/trex/sidebar.js 의 153 라인의 위치하고 있습니다.
{code}
	execRemove: function() {
		this.remove();
		this.entryBox.remove(this);
	},
{code}
위에서 this.remove(); 의 경우 /daumeditor-5.4.0/_js_source/trex/attachment.js 의 59라인에 위치하고 있습니다. 여기에서는 canvas 에서 해당하는 내용을 제거하는 기능을 수행합니다.
this.entryBox.remove(this); 의 경우 /daumeditor-5.4.0/_js_source/trex/sidebar.js 의 90라인에 위치하고 있습니다. 엔트리의 deletedMark 변수를 true 로 바꿔주고, Trex.Ev.__ENTRYBOX_ENTRY_REMOVED 이벤트를 fire 시킵니다.
{code}
	remove: function(entry) {
		entry.deletedMark = true;
		this.fireJobs(Trex.Ev.__ENTRYBOX_ENTRY_REMOVED, entry);
	},
{code}


답변 감사합니다.^^
2번 문제는 인코딩상의 문제라서 해결하였습니다.
항상 상세한 답변 감사드립니다.^^


execAttach함수에 대해서 자사한 내용을 좀 알고 싶습니다.


이미지 첨부부분을 수정하면서 execAttach함수에 대해서 찾아봤는데...
도무지 어느부분에 있는 함수인지를 모르겟습니다.
용도는 전체 이미지 용량을 확인하고 제한하려는 기능을 만들때 사용하려고 하는데.
찾질 못해서 답답한 마음만 가지고 있습니다..ㅜㅜ

js파일의 몇번째 라인에 있는지...
덧붙여 함수의 대한 설명도 해주셧으면 더없이 감사할것 같습니다.^^;


안녕하세요, 운영자입니다.

네 말씀주신 부분을 소스 차원에서 확인을 원하시면 아래 코드들을 참고하시면 도움이 되실 것 같습니다.


1.
/daumeditor-5.4.0/_js_source/common.js
143라인
{code}
function registerAction(attacher) {
	if(!attacher) {
		return; 
	}
	window.execAttach = attacher.attachHandler;
}
{code}
registerAction 을 통해서 attacher 의 attachHandler 를 전역 변수 execAttach 로 연결시킵니다.

이 부분은 다시 아래 부분으로 연결됩니다.
2.
/daumeditor-5.4.0/_js_source/trex/attacher.js
142라인
{code}
	attachHandler: function(data, attachmentType) {
		if(this.checkInsertable()) {
			if(this.isCheckSize && !this.entryBox.checkInsertableSize(data.filesize)) {
				alert(TXMSG("@attacher.size.alert"));
				return;
			}
			this.execAttach(data,  attachmentType);
		} else {
			this.execReattach(data,  attachmentType);
		}
	},
{code}

여기서 execAttach 를 타게되어 아래 부분으로 연결되고요.
3.
/daumeditor-5.4.0/_js_source/trex/attacher/image.js
102라인
{code}
	execAttach: function(data, type) {
		var _entry = this.createEntry(this.getDataForEntry(data), type);
		_entry.execRegister();
	},
{code}

createEntry 는 createAttachment 를 호출하여 또 다시 Trex.Attacher 의 멤버로 연결됩니다(Trex.Attacher.Image 는 Trex.Attacher 를 상속받음).
4.
/daumeditor-5.4.0/_js_source/trex/attacher.js
157라인
{code}
	createAttachment: function(data, type) {
		var _attachmentType = this.constructor.__Identity;
		if(type){
			_attachmentType = type;
		}
		return new Trex.Attachment[_attachmentType.capitalize()](this, data);
	},
{code}

여기서 이미지일 경우에는 Trex.Attachment.Image 클래스의 인스턴스를 하나 생성하여 리턴하게 됩니다. 해당 클래스 코드는 아래 위치에 있습니다.
5.
/daumeditor-5.4.0/_js_source/trex/attacher/image.js
125라인부터..

3번에서 호출되는 _entry.execRegister() 는 Trex.Attachment.Image 의 부모 클래스인 Trex.Attachment 의 부모 클래스인 Trex.Entry 에 위치하고 있습니다.
6.
/daumeditor-5.4.0/_js_source/trex/sidebar.js
141라인
{code}
	execRegister: function() {
		this.register();
		this.entryBox.append(this);
		this.setExistStage(true);
	},
{code}

여기서 attachment 의 register 를 호출해서 에디터 본문에 HTML 을 붙여넣고,
entryBox 에 entry (첨부된 파일에 대한 정보가 들어있음) 를 추가하여 첨부 파일들을 관리하게 하는 등의 작업을 합니다.

구조가 꽤 복잡하긴 합니다만, 클래스와 메소드를 위주로 찾아서 따라가시다 보면 소스가 어느 정도 파악이 되실듯합니다.


그리고 전체 이미지 용량을 확인하고 제한하는 기능을 만드는 기능은 여러가지로 구현이 가능하겠습니다만, 에디터 소스를 꼭 고치시지 않아도 되는 아래와 같은 방식을 추천드립니다.

1. popup 페이지 내에서 attacher 를 변수에 담아둡니다(getAttacher() 함수로 가능, 기존의 initUploader() 를 참고).
2. attacher.getDatalist() 를 호출하여 list 를 받아옵니다.
3. list 를 순환하여 .data.filesize 를 합산하여 전체 이미지 용량을 확인합니다.

예제 코드로 나타내면 다음과 같습니다.
{code}
...
		var list, i, len, sum;
		list = attacher.getDatalist();
		len = list.length;
		sum = 0;
		for (i = 0; i < len; i += 1) {
			sum += list[i].data.filesize;
		}
		alert("지금까지 업로드된 이미지들 사이즈 합: " + sum);
		sum += currentFileSize;
		alert("하나 더 하면: " + sum);
{code}
해당 image.html 파일의 전체 코드를 첨부하였습니다. 참고가 되셨으면 합니다.
더 궁금하신 부분이나 자세한 설명이 필요하신 부분은 댓글을 남겨주시길 바랍니다.


에디터 사용에 관심을 주셔서 감사합니다. 또 다른 질문이나 건의 사항이 있으시면 글을 남겨주시길 부탁드립니다.
즐거운 저녁 되십시요~^^


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Daum에디터 - 이미지 첨부</title>
<script src="../../js/popup.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="../../css/popup.css" type="text/css"  charset="utf-8"/>
<script type="text/javascript">
// <![CDATA[
       
        function done() {
                if (typeof(execAttach) == 'undefined') { //Virtual Function
                return;
            }
                var currentFileSize = 640;
                var _mockdata = {
                        'imageurl': 'http://cfile284.uf.daum.net/image/116E89154AA4F4E2838948',
                        'filename': 'editor_bi.gif',
                        'filesize': currentFileSize,
                        'imagealign': 'C',
                        'originalurl': 'http://cfile284.uf.daum.net/original/116E89154AA4F4E2838948',
                        'thumburl': 'http://cfile284.uf.daum.net/P150x100/116E89154AA4F4E2838948'
                };
               
                var list, i, len, sum;
                list = attacher.getDatalist();
                len = list.length;
                sum = 0;
                for (i = 0; i < len; i += 1) {
                        sum += list[i].data.filesize;
                }
                alert("지금까지 업로드된 이미지들 사이즈 합: " + sum);
                sum += currentFileSize;
                alert("하나 더 하면: " + sum);
               
                execAttach(_mockdata);
                closeWindow();
        }

        function initUploader(){
            var _opener = PopupUtil.getOpener();
            if (!_opener) {
                alert('잘못된 경로로 접근하셨습니다.');
                return;
            }
           
            window.attacher = getAttacher('image', _opener);
            registerAction(attacher);
        }
// ]]>
</script>
</head>
<body onload="initUploader();">
<div class="wrapper">
        <div class="header">
                <h1>사진 첨부</h1>
        </div>  
        <div class="body">
                <dl class="alert">
                    <dt>사진 첨부 확인</dt>
                    <dd>
                        확인을 누르시면 임시 데이터가 사진첨부 됩니다.<br />
                                인터페이스는 소스를 확인해주세요.
                        </dd>
                </dl>
        </div>
        <div class="footer">
                <p><a href="#" onclick="closeWindow();" title="닫기" class="close">닫기</a></p>
                <ul>
                        <li class="submit"><a href="#" onclick="done();" title="등록" class="btnlink">등록</a> </li>
                        <li class="cancel"><a href="#" onclick="closeWindow();" title="취소" class="btnlink">취소</a></li>
                </ul>
        </div>
</div>
</body>
</html>

신고

댓글을 달아 주세요

jquery 마우스 우클릭 차단

Posted by 비회원 프로그래밍/jQuery : 2012.07.02 17:36

스크립트로 했을땐 알툴바로 뻥뻥 뚫리지만

이건 그나마 알툴바는 막는듯..


<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../js/common.js"></script>
<script>
$(document).ready(function(){
 $(document).bind("contextmenu", function(e) {
  return false;
 });
});
$(document).bind('selectstart',function() {return false;});
$(document).bind('dragstart',function(){return false;});
</script>

신고

댓글을 달아 주세요

  1. 2012.09.04 15:41 신고 BlogIcon 하늘과 나  댓글주소  수정/삭제  댓글쓰기

    이거 고민하고 있었는데 님의 글대로 하니 막아지네요
    감사합니다^^

출처: 그누보드 (http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=758967)

 .htaccess 파일에 아래 내용만 ctrl+c, v 해주시면 됩니다.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus

신고

'프로그래밍 > SERVER/linux' 카테고리의 다른 글

htaccess 설정으로 크롤러 (사이트복사 ) 막는 소스  (0) 2012.06.26
기본명령어  (0) 2011.12.06
scp 폴더복사  (0) 2011.12.05

댓글을 달아 주세요

jquery 이미지 롤링

Posted by 비회원 프로그래밍/jQuery : 2012.06.13 10:26

 <style>
   ul {list-style-type:none;margin:0;padding:0;}
   li {margin:0;padding:0;}
   div.gallery_rolling .arrow_prev {position:relative;left:-80;width:15px;height:35px;cursor:pointer;z-index:1;}
   div.gallery_rolling .arrow_next {position:relative;left:1080px;width:15px;height:35px;cursor:pointer;z-index:1;}
   div.gallery_rolling div.carrousel_box {position:relative;top:0px;left:0px;overflow:hidden;width:434px;}
   div.gallery_rolling li {float:left; width:1200px; height:621px;}
  </style>
<script src="/pps/js/jquery.rolling.js" type="text/javascript"></script>
<script>
  jQuery(function($){
    $("div.gallery_rolling").gallery_rolling();
  });
  </script>
</head>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><table width="1200" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <!--jpmain_content1.2.3 회살표로 롤링-->
          <td width="1200" height="621">
   
    <DIV class=gallery_rolling>
      <SPAN class=arrow_prev><img src="/pps/images/leftbt.png" width="58" height="90"></SPAN>
    <SPAN class=arrow_next><img src="/pps/images/rightbt.png" width="58" height="90"></SPAN>
     <DIV class=carrousel_box>
      <UL>
     <LI>
       <DIV class=img_box><img src="/pps/images/jpmain_content1.jpg"  width="1200" height="621"> </DIV>
       </LI>
     <LI>
       <DIV class=img_box><img src="/pps/images/jpmain_content2.jpg"  width="1200" height="621"> </DIV>
       </LI>
     <LI>
       <DIV class=img_box><img src="/pps/images/jpmain_content3.jpg"  width="1200" height="621"> </DIV>
       </LI>
     </UL>
     </DIV>
    </DIV>
    </td>
        </tr>
      </table></td>
  </tr>
</table>

jquery-1.7.2.min.js

 

jquery.rolling.js

신고

댓글을 달아 주세요

<center><img id="img001" border="0" src="http://elogin.co.kr/event/images/120612_c.jpg" width="600" height="1088"></center>

<center><img id="img002" border="0" src="http://www.elogin.co.kr/eboard/elogin_images/sub_img/msoffice/ms3.jpg" width="580" height="2835"></center>

<center><img id="img003" border="0" src="http://elogin.co.kr/event/images/popup_20120321.jpg" width="550" height="626"></center>


<script>
$(function(){
var target_id='#img001';
$('body, html').css('scrollTop', $(target_id).offset().top);
$('body, html').animate({ scrollTop: $(target_id).offset().top }, 1000);
window.scrollTo(0, $(target_id).offset().top);
});
</script>

 

신고

댓글을 달아 주세요

jquery 이미지 마우스 휠 롤링

Posted by 비회원 프로그래밍/jQuery : 2012.05.24 15:08

 

 

cloud-carousel.1.0.5.js

 

jquery-1.7.2.min.js


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/JavaScript" src="jquery.mousewheel.js"></script>
<script type="text/JavaScript" src="cloud-carousel.1.0.5.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("#actela_main").CloudCarousel( {
  reflHeight: 0,
  reflGap:1,
  buttonLeft: $('#but1'),
  buttonRight: $('#but2'),
  yRadius:-50,
  xPos: 625,
  yPos: 55,
  speed:0.15,
  autoRotate: 'yes',
  autoRotateDelay: 2000,
  mouseWheel:true
 });
});
</script>

<div style="position:absolute; width:1250px;top:200px; z-index:9">
 <div style="float:left; top:100px;"><img src="slide_arr1.png" id="but1" name="but1" style="cursor:hand"></div>
 <div style="float:right;"><img src="slide_arr2.png" id="but2" name="but2" style="cursor:hand"></div>
</div>

<div id="actela_main" style="width:1200; height:390px; ">
 <a href="#"><img class="cloudcarousel" src="./img/1.jpg" border="0"/></a> 
 <a href="#"><img class="cloudcarousel" src="./img/2.jpg" border="0"/></a>
 <a href="#"><img class="cloudcarousel" src="./img/3.jpg" border="0"/></a>
</div>

 

신고

댓글을 달아 주세요

스크립트 빈값체크

Posted by 비회원 프로그래밍/Javascript : 2012.05.20 16:49


 function novalue_chk(target,msg){
  if(target.value==""){
   alert(msg);
   target.focus();
   return false;
  }
 }

신고

댓글을 달아 주세요

어디서 갖고왔더락........


function getBrowser($agent) {
 $browser = array(
  "MSIE 5.0" => "/msie 5.0[0-9]*/",
  "MSIE 5.5" => "/msie 5.5[0-9]*/",
  "MSIE 6.0" => "/msie 6.0[0-9]*/",
  "MSIE 7.0" => "/msie 7.0[0-9]*/",
  "MSIE 8.0" => "/msie 8.0[0-9]*/",
  "MSIE 9.0" => "/msie 9.0[0-9]*/",
  "Chrome" => "/chrome\/*/",
  "FireFox" => "/firefox\/*/",
  "Netscape" => "/x11/",
  "Opera" => "/opera*/",
  "Safari" => "/safari\/*/",
  "Android" => "/android/",
  "Mobile Safari" => "/mobile\/[0-9a-z]* safari/",
  "Robot" => "/yahoo/",
  "Robot" => "/bot/"
 );
 $agent = strtolower($agent);
 foreach($browser as $name=>$exp){
  if(preg_match($exp, $agent)){
   $browser = $name;
  }
 }
 return $browser;
}

$u_agent = $_SERVER['HTTP_USER_AGENT'];
$browser =  getBrowser($u_agent);
if($browser == 'Android' || $browser == 'Mobile Safari'){
 if($browser == 'Android'){
  ECHO "ANDROID";
 }else{
  ECHO "IPHONE";
 }
}else{
 ECHO "OTHER";
}

 

신고

댓글을 달아 주세요

출처 : http://happy74.tistory.com/85

★ 타입1
<SCRIPT LANGUAGE="javascript">
<!--//
/** * 全角であるかをチェックします。 * * @param チェックする値 * @return ture : 全角 / flase : 全角以外 */
function checkIsZenkaku(value){
 for (var i = 0; i < value.length; ++i){
  var c = value.charCodeAt(i);
  // 半角カタカナは不許可
  if (c < 256 || (c >= 0xff61 && c <= 0xff9f)){
   return false;
  }
 }
 return true;
}

function check()
{
 if (checkIsZenkaku(document.all.textbox.value))
 {
  alert("指定の文字全ては全角です");
 }
 else
 {
  alert("指定の文字に全角以外の文字が含まれています");
 }
}
//-->
</SCRIPT>

★ 타입2
<script language="javascript">
<!--//
/** JavaScript 入力文字列内に全角文字が含まれていたら警告する **/
function Check(){
 var str = document.all.textbox.value;
 for(i=0;i<str.length;i++){
  if(escape(str.charAt(i)).length>=4){
   alert("全角文字が含まれています");
   document.frmForm.txtText.value = "";
   return;
  }
 }
 alert("全角文字は含まれていません");
}
//-->
</script>

<INPUT TYPE="text" NAME="textbox" STYLE="ime-mode:disabled" >

★ 타입3
全角文字、あるいは半角文字が含まれているかチェックする
文字のバイト数をカウントするスクリプトの応用です。
文字列を1文字ずつチェックし、全角(半角)文字の場合そこで処理を中止し、true(真)を返します。
1文字も含まれていない場合は、false(偽)を返します。

1./****************************************************************
2.* 全角/半角文字判定
3.*
4.* 引数 : str チェックする文字列
5.* flg 0:半角文字、1:全角文字
6.* 戻り値: true:含まれている、false:含まれていない
7.*
8.****************************************************************/
9.function CheckLength(str,flg) {
10.    for (var i = 0; i < str.length; i++) {
11.        var c = str.charCodeAt(i);
12.        // Shift_JIS: 0x0 ~ 0x80, 0xa0 , 0xa1 ~ 0xdf , 0xfd ~ 0xff
13.        // Unicode : 0x0 ~ 0x80, 0xf8f0, 0xff61 ~ 0xff9f, 0xf8f1 ~ 0xf8f3
14.        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
15.            if(!flg) return true;
16.        } else {
17.            if(flg) return true;
18.        }
19.    }
20.    return false;
21.}

★ 타입4
<html>
<head>
<SCRIPT language='JavaScript'>
<!-----
//半角カナをチェックします
function Form_Validator(theForm)
{
 var disp = "";
 var text =theForm.text1.value;
 var len = text.length;
 var ret = true;
 var flg = true;
 var str = "";

 for ( i = 0 ; i < len ; i++ ) {
  str = text.substring(i, i+1);
  ret = isHankaku(str);
  if (ret){
   disp += "「" + str + "」";
   flg = false;
  }
 }
 if(!flg){
  alert(disp + "は半角カナです。\n");
  theForm.text1.focus();
  return(false);
 }else{
  alert("半角カナは含まれていません。");
  return(false);
 }
}

function isHankaku(str)
{
 var esc_str = escape(str);
 var ms = navigator.appVersion.indexOf("MSIE");
 var nesc = navigator.appName.lastIndexOf("Netscape"); //一致した位置(0)を返す
 
 if(nesc >= 0){
  if ( (esc_str.indexOf('%A') == 0) ||
   (esc_str.indexOf('%B') == 0) ||
   (esc_str.indexOf('%C') == 0) ||
   (esc_str.indexOf('%D') == 0) ){
   return(true);
  }
 }else if(ms > 0){
  if((esc_str.indexOf('%uFF6') == 0) ||
   (esc_str.indexOf('%uFF7') == 0) ||
   (esc_str.indexOf('%uFF8') == 0) ||
   (esc_str.indexOf('%uFF9') == 0) ) {
   return(true);
  }
 }

 return(false);
}
//----->
</script>

</head>
<body>

<form name="form1" method="GET" onsubmit="return Form_Validator(this);">
 <input type="text" name="text1" size="20">
 <input type="submit" value="チェックする">
</form>

</body>
</html>

★ 타입5
//全角チェック
 public static boolean isFullWord(String i_strContents)
 {
  boolean value = true; 
  byte[] byteArray = null;
         byteArray = i_strContents.getBytes();
         for(int i = 0; i < byteArray.length; i++)
         {
             if((byteArray[i] >= (byte)0x81 && byteArray[i] <= (byte)0x9f) ||
                 (byteArray[i] >= (byte)0xe0 && byteArray[i] <= (byte)0xef))
             {
                 if((byteArray[i+1] >= (byte)0x40 && byteArray[i+1] <= (byte)0x7e) ||
                     (byteArray[i+1] >= (byte)0x80 && byteArray[i+1] <= (byte)0xfc))
                 {
                     i++;
                 }
                 else
                 {
                     value = false;
                 }
             }
             else
             {
                 value = false;
             }
         }
         return value;

 }
 //半角チェック
 public static boolean isHalfWord(String i_strContents)
 {
  boolean value = true;
  byte[] byteArray = null;
        byteArray = i_strContents.getBytes();
        for(int i = 0; i < byteArray.length; i++){
            if((byteArray[i] >= (byte)0x81 && byteArray[i] <= (byte)0x9f) ||
                (byteArray[i] >= (byte)0xe0 && byteArray[i] <= (byte)0xef)) {
                if((byteArray[i+1] >= (byte)0x40 && byteArray[i+1] <= (byte)0x7e) ||
                    (byteArray[i+1] >= (byte)0x80 && byteArray[i+1] <= (byte)0xfc)) {
                    value = true;
                }
            }
        }
        return value;

 }

  //名前の全角を検査します。
 public static boolean checkNameFormat(String i_strContents)
 {
  boolean bResult = (!i_strContents.equals("")&&Validation.isFullWord(i_strContents));
  return bResult;
 }

 //点数と人数の半角を検査します
 public static boolean checkPointFormat(String i_strContents)
 {
  boolean bResult = true;
  int iContents;

  //半角の時
  if(!i_strContents.equals("")&&!Validation.isFullWord(i_strContents))
  {
   iContents = Integer.parseInt(i_strContents);
   //0点から100点以内
   if((iContents < 0) || (iContents > 100))
   {
    bResult = false;
   }
  }
  else
  {
   bResult = false;
  }
  return bResult;
 
 }

★ 타입6
function checkhalf(str){
 str = str;
    chkstr = escape(str.value);
    if (chkstr.indexOf('%') != -1){
      alert('入力は半角英数字でお願いします。');
      str.value = "";
      str.focus();
 }
}

신고

댓글을 달아 주세요

DTD 설정이 있는경우 퀵메뉴

Posted by 비회원 프로그래밍/Javascript : 2012.03.19 16:00


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">

 

 


<script type="text/javascript">
function initMoving(target, position, topLimit, btmLimit) {
if (!target)
return false;

var obj = target;
obj.initTop = position;
obj.topLimit = topLimit;
obj.bottomLimit = document.documentElement.scrollHeight - btmLimit;

obj.style.position = "absolute";
obj.top = obj.initTop;
obj.left = obj.initLeft;

if (typeof(window.pageYOffset) == "number") {
obj.getTop = function() {
return window.pageYOffset;
}
} else if (typeof(document.documentElement.scrollTop) == "number") {
obj.getTop = function() {
return document.documentElement.scrollTop;
}
} else {
obj.getTop = function() {
return 0;
}
}

if (self.innerHeight) {
obj.getHeight = function() {
return self.innerHeight;
}
} else if(document.documentElement.clientHeight) {
obj.getHeight = function() {
return document.documentElement.clientHeight;
}
} else {
obj.getHeight = function() {
return 500;
}
}

obj.move = setInterval(function() {
if (obj.initTop > 0) {
pos = obj.getTop() + obj.initTop;
} else {
pos = obj.getTop() + obj.getHeight() + obj.initTop;
//pos = obj.getTop() + obj.getHeight() / 2 - 15;
}

if (pos > obj.bottomLimit)
pos = obj.bottomLimit;
if (pos < obj.topLimit)
pos = obj.topLimit;

interval = obj.top - pos;
obj.top = obj.top - interval / 3;
obj.style.top = obj.top + "px";
}, 30)
}
</script>
 </head>

 <body>
<table>
<tr><td height="1500">
test
</td>
</tr>
</table>

<div id="gotop" style="left:500px;">
asfafssdsadasasddsadas
</div>
<script type="text/javascript">initMoving(document.getElementById("gotop"), 66, 66, 250);</script>

 </body>
</html>

신고

댓글을 달아 주세요

iframe 자동 리사이즈

Posted by 비회원 프로그래밍/Javascript : 2012.03.19 14:52



<script language="JavaScript">
function resizeHeight(fr) {
 var frbody = fr.contentWindow.document.body;
 fr.style.height = frbody.scrollHeight + ( frbody.offsetHeight - frbody.clientHeight );
}
// IFrame script Ver 1.0

//여러개의 IFrame는 다음과 같이 사용합니다.
// 예 : ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["iframe"]
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0

function resizeCaller() {
var dyniframe=new Array()

for (i=0; i<iframeids.length; i++) {
if (document.getElementById)
resizeIframe(iframeids[i])

if ((document.all || document.getElementById) && iframehide=="no") {
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid) {
var currentfr=document.getElementById(frameid)

if (currentfr && !window.opera){
currentfr.style.display="block"

if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight)
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight)
currentfr.height = currentfr.Document.body.scrollHeight;

if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe)
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement

if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url) {
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller
</script>

</head>


     <iframe src="/board/bbs/board.php?bo_table=freeboard" width="712" id="iframe" frameborder="0" hspace="0" marginheight="0" marginwidth="0" scrolling="no" vspace="0" onload="resizeHeight(this)"></iframe>

신고

댓글을 달아 주세요

 function autoBlur()
 {
  if(event.srcElement.tagName == "A" || event.srcElement.tagName == "IMG")
  {
   document.body.focus();
  }
 }
 document.onfocusin=autoBlur;

신고

댓글을 달아 주세요

iframe 배경색 투명

Posted by 비회원 프로그래밍/HTML/CSS : 2012.03.09 18:15

allowtransparency="ture"

 

onload=function()
{
 var frame_view = document.getElementsByTagName('iframe');
 for(var i = 0 ; i < frame_view.length ; i++)
 {
  frame_view[i].setAttribute("allowTransparency","true");
 }
}

 

 

신고

댓글을 달아 주세요

window.open post로 값넘기기

Posted by 비회원 프로그래밍/Javascript : 2012.02.12 16:52


 

$(document).ready(function(){
 $("#go_save").click(function(){
  if($("#celtype1").attr("checked")==true || $("#celtype2").attr("checked")==true){
   window.open("","_printex","channelmode=yes,scrollbars=yes");
   var f = document.write_frm;
   f.target = "_printex";
   f.submit();
  }else{
   alert("인쇄하실 항목을 선택해주세요.");
  }
 });
});



<form name="write_frm" action="/print/_setprint.php" method="post">
<input type="hidden" name="print_ex" value="bill_confirm">
<center>
<span class="button n"><button type="button" id="go_save">인쇄</button></span>
</center>
</form>

신고

댓글을 달아 주세요

 «이전 1 2 3 4 ··· 8  다음»