레이블이 javascript인 게시물을 표시합니다. 모든 게시물 표시
레이블이 javascript인 게시물을 표시합니다. 모든 게시물 표시

2019년 9월 6일 금요일

Youtube API 활용 팁

기획에서 Youtube 재생을 컨트롤 하는 것을 주문해서..

이것저것 해본거 정리..

요구 사항은..(나랑 의견이 안 맞긴 했지만...)

1. 동영상은 2개

2. 위에 동영상이 끝나면 자동으로 아래것이 재생

3. Youtube는 iframe 형식으로 사용

===============처리 방법=================

참조 문서 : https://developers.google.com/youtube/iframe_api_reference#Playback_controls

일단!!! 제일 중요한 부분!!! iframe에 들어있는 주소에 쿼리스트링으로 enablejsapi=1 을 붙인다!!! 이거 안 붙여서 1시간 날려먹음..

그리고.. api 호출해주고.. :

<script src="https://www.youtube.com/iframe_api">

이하 제어 스크립트.. 나머지는 주석 참고..


<
script >
    var player1, player2; //동영상 2개에 대한 객체 선언...

//onYouTubeIframeAPIReady 함수는 https://www.youtube.com/iframe_api 에서 자동으로 호출한다.. 별도의 호출 선언 없음..
function onYouTubeIframeAPIReady() {
    // iframe id 넣어줌 (player1)
    player1 = new YT.Player('player1', {
        events: {
            'onStateChange': onPlayerStateChange
        }
    });

    // iframe id 넣어줌 (player2)
    player2 = new YT.Player('player2', {
        events: {
            'onStateChange': onPlayerStateChange
        }
    });
}

function onPlayerStateChange(event) {
    //동영상 플레이어의 상태 변경시 호출됨...
    //console.log(event);
    //console.log(event.target.a.id)
    switch (event.data) {
        case 0:
            //재생 멈춤 상태값..
            //record('video ended');
            //플레이어가 1에서 이벤트가 발생했다면..
            if (event.target.a.id == 'player1') {
                //player2의 상태가 시작되지 않았다면
                if (player2.getPlayerState() != "-1") {
                    player1.stopVideo(); //멈추고
                    player2.playVideo(); //시작...
                }
            } else {
                if (player1.getPlayerState() != "-1") {
                    player2.stopVideo();
                    player1.playVideo();
                }
            }
            break;
        case 1:
            //재생 시작 상태값..
            //record('video playing from '+player.getCurrentTime());
            break;
        case 2:
            //재생 일시정지 상태값..
            //record('video paused at '+player.getCurrentTime());
            break;
    }
}

function record(str) {
    console.log(str);
} <
/script>

끗!


2018년 11월 9일 금요일

읽기 전용인 input 태그의 값이 변경되었을 때, 감지 방법

진짜.. 이걸로.. 쌩쑈를 다 해서리.. 정리차 적어 놓음..

0. 쇼핑몰 리뉴얼 중 주문 화면에서 우편 번호를 받으면 이게 산간 오지 지역이면 도선료를 추가로 부여해야 하는 상황 발생.

1. 쇼핑몰 솔루션을 자체 마이그레이션 하는 것이기에 알아서 해야 함.

2. daum의 주소찾기 사용 중.

3. 솔루션에서 script로 자체 기능 구현해 놨음.. button 태그 클릭하면 class 감지해서 우편번호 검색기가 뜨게..

4. 문제는 우편 번호를 받는 input 태그가 readonly 속성이라.. 값을 전~~~혀 읽을 수 없음!!

5. 어쩔까 고민하고, 구글링 한 결과.. readonly 속성이 붙은 건 어쩔 수 없고, 키 입력이 안들어오게 막는게 더 낫겠다란 생각이 들음. (readonly 속성을 때면.. 값이라도 읽을 수 있으니..)

6. css로 readonly 속성이 된 것처럼 보이게 하고.. 자~~ 이제 onchange 이벤트로 값을 읽어보자!!!

7. 어? 이거 왜 못 읽지?

8. 이리저리 삽질 시작.. jquery로 이벤트 리스너도 추가. bind도 해보고 triger도 해보고..

9. 안된다!!! 이 쉬운게 안된다니!!! 이게 뭔 상황이지??

10. 좀 더 구글링을 해보니.. change란 이벤트는 키 입력이 이뤄져야 발생이 되고, 값을 고쳐준 경우엔 별도의 처리가 필요하다!~ 란 걸 알게됨..

11. 이하. 조치 내용...

12. 아직도 배울게 많군화~~~~

  1. var $input = $("#rcvPost")//이놈이 오늘의 주인공 우편번호 input box!!   
  2. $("#rcvPost").on('input'function() {
  3.     // Do this when value changes
  4.     console.log("Input text changed!" + $(this).val());
  5. });


이렇게 javascript에서 선언하고..

별도의 함수를 구현해야 한다.. 이하 코드..

  1. (function ($) {
  2.     var originalVal = $.fn.val;
  3.     $.fn.val = function (value) {
  4.         var res = originalVal.apply(this, arguments);
  5.  
  6.         if (this.is('input:text') && arguments.length >= 1) {
  7.             // this is input type=text setter
  8.             this.trigger("input");
  9.         }
  10.  
  11.         return res;
  12.     };
  13. })(jQuery);

이 같이 처리하면.. 값 변경이 일어나면.. 입력이 된 것처럼 동작시킨다..

진짜 끗!!





2018년 7월 23일 월요일

오늘의 삽질 일기... ASP에서 json을 POST 로 넘겼을때 처리....

소요시간 : 6시간...

문제 사항 :

1. ASP 환경에서 json을 textarea에 담아서 POST로 넘긴다음 처리 할려고 했으나..

2. json String을 Parse 하는 부분에서 계속 오류...

3. ASP에서 사용되는 라이브러리를 변경하여 여러 방법으로 테스트 해봤으나.. 계속 오류...

4. POST로 받은 json String 을 Replace 해봤으나.. 계속 오류..

5. Raw Text 형태로 출력해 보면.. 정상적으로 값이 잘 보임...

6. 예전에 특수문자 Escape 문제가 생각나서 시도했으나.. 여전히 안됨..

7. 하다가.. 그냥.. jquery로 처리를 해보자 하는 마음에... javascript 변수에 받아서 출력해 봄.

8. 헉!!!! 더블쿼테이션(")  이 HTML 코드(")로 변경되어 넘어와 있네?

9. 더블쿼테이션(")을 변환하는 소스를 넣으니.. 잘된다..

10. 이놈의 삽질은 도데체 언제까지 해야 하나...

2016년 9월 8일 목요일

javascript로 임시 ID를 생성할때..TIP?


아래처럼 해보면 어떨까?


var rightNow = new Date();
var res = rightNow.toISOString().slice(0,19).replace(/-/g,"").replace(/:/g,"");


원래는 yyyymmddhhmmss 이런 식으로 해서 받아 왔었는데..

찾아보면.. date 객체를 생성해서.. replace 하는 형태로 쓰던데..

저따구로 하면.. 더 간단하게 받을 수 있다..

유후~~~

2016년 5월 17일 화요일

회사에서 excel을 import 해서 메일링 / 문자 서비스 등을 개발할 일이 생겨서 찾아 보았다..

http://oss.sheetjs.com/js-xls/

업무용 프로그램으로 GAUCE를 사용해서 구현했는데..

요샌 세상이 좋아서.. 바로 import 하는 jquery 프로그램들이 많이 있어서 편하다..

2015년 11월 27일 금요일

jQuery에서 문자열을 json 객체로 변환시...


parseJSON 을 사용하면 되는 건 맞는데!!! 주의 할 점!!!

문서 대강대강 보다가.. 2시간 날림..!!

문자열 만들때..


1
2
var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );

반드시!!! 쌍따옴표를 써야 한다.. javascript여서.. 홑따옴표로 변형해서 썼더니 절대 안됐음..

설명을 잘 읽어 볼걸......

Passing in a malformed JSON string results in a JavaScript exception being thrown. For example, the following are all invalid JSON strings:
  • "{test: 1}" (test does not have double quotes around it).
  • "{'test': 1}" ('test' is using single quotes instead of double quotes).
  • "'test'" ('test' is using single quotes instead of double quotes).
  • ".1" (a number must start with a digit; "0.1" would be valid).
  • "undefined" (undefined cannot be represented in a JSON string; null, however, can be).
  • "NaN" (NaN cannot be represented in a JSON string; direct representation of Infinity is also not permitted).

jquery document, window ready, load 이벤트 순서 정리..

$(document).load(

function() {
console.log("doc load");
});
 해당 이벤트 없음
$(document).ready(

function() {
console.log("doc ready");
});
1등
$(window).ready(

function() {
console.log("window  ready");
});
2등
$(window).load(

function() {
console.log("window load")
$("#divOuter").fadeIn("slow");
});
document를 다 읽은 후 발생
3등

헷갈려서.. 그냥 함 돌려봄..

[낯선] 2026.06.20 이태원 MZK MuzikBar 공연

간만의 공연 이태원 비틀즈가 이전하여 MZK MuzikBar 로 새 단장 오픈을 한 뒤로 2번째 공연 새 베이시스트가 합류한 뒤로 첫 공연이기도 함.. 이래저래 틀린 부분도 많지만.. 그래도 간만에 그럭저럭 잘했다.. https://www.youtub...