도와주세요

아이고 자바스크립트 고수분들 도와주세요!!!

Hanam092018.01.08 23:03조회 수 161댓글 2

    • 글자 크기
<div id="Error">
<div hc-element="block"></div>
<img width="150px" hc-float="center" src="img/Warning.svg.png">
<center>
<h2>Oops, Access to this page has been denied!</h2>
<button hc-event="back" hc-float="center">back</button>
</center>
<div hc-element="block"></div>
</div>


문제가 되는 웹: gift.ihnkyou.gq

소스보기: view-source:gift.ihnkyou.gq

해당파일 : htmlctr.js

버튼이 작동하지 않습니다. 문제가 있는거 같은데 찾지는 못하겠습니다. 

무엇이 문제인지 알려주실 수 있습니까?

저기 위에건 html 소스라서 못읽습니다. 

이 문제를 해결하기 위하여 제가 어떻게 하여야 할까요?

 

안녕!

 

    • 글자 크기
에.. 죄송합니다. 이번이 세번째 질문이네요. (by Blessed_Umbrella) 리디렉션 형태가 여러가지가 있던데 설명좀 해주실분 계신가요? (by 참빛바다)
  • 2018.1.9 01:23

    Inv['plugin']['event'] 에 정의된 함수에 문제가 있습니다.

     

    for(var i = 0; i < Inv.getElements('event').length; i++){

        Inv.getElements('event')[i].onclick = function() {

            if(Inv.getValue("event", i) === "refresh")

                location.reload();

        }

    }

     

     

    여기서 Element.onclick 함수 안에서 i 변수를 사용하셨는데,

    반복문에서 사용되는 반복카운터는 함수 안에서 사용하시면 안됩니다.

     

    저 i 값은 클로져 변수라 for 블럭 안에서만 사용되는 것은 맞으나, 그것이 반복할 때마다 새롭게 생성되는건 아닙니다.

    이전에 실행되었던 반복코드에서도 i 값에 접근한다면, 돌아오는 값은 지금까지 진행된 카운트 수가 됩니다.

    예를 들어, for(i = 0 to 10) { setTimeout( { alert(i) }, 1000); } 이라는 의사코드를 실행한다면,

    출력되는 값은 어지간한 조선컴퓨터가 아닌 이상 10 이라는 숫자가 10회 출력된다는 것이죠.

     

     

    하남님이 원하시는(또는 그렇게 추정되는) 방식으로 구현하려면,

    저 i 값을 보존하는 변수를 하나 더 만들어서, 그 변수를 i 대신 사용해야겠죠.

     

    for(var i = 0; i < Inv.getElements('event').length; i++){

        var ti = i;

        Inv.getElements('event')[ti].onclick = function() {

            if(Inv.getValue("event", ti) === "refresh")

                location.reload();

        }

    }

     

    같은 느낌으로요.

     

    솔직히, 제가 생각하기에는 그리 이상적인 방법은 아니라고 생각합니다.

    요즘 PC에서는 웬만해선 부담되지 않겠지만, 그래도 많은 Element 들이 생긴다면, 부담이 될겁니다.

    해당 Attribute 가 있는 개수만큼 변수를 생성해버릴테니까요.

     

    저라면 getValue 에서 사용 가능한 파라미터 종류를 하나 더 만들듯 싶네요.

    파라미터의 타입이 Element 라면, getElement를 거치지 않고, 바로 파라미터에서 Attribute를 가져오는 식으로요.

  • @네모
    Hanam09글쓴이
    2018.1.9 15:47

    오!!!! 정성스러운 답변 정말로 감사합니다^^!!

    네모님 덕분에 문제를 알 수 있었습니다! 

    복많이 받으세요!!

댓글 달기

번호 제목 글쓴이 날짜 조회 수
공지 앞으로 ssh 사용시 한글 사용이 가능합니다.7 마스터 2018.10.12 9884
공지 접속 불가 사태 수습은 진행중입니다.35 마스터 2018.10.05 10100
공지 회원 전용 페이지가 생겼습니다.10 마스터 2018.03.20 11126
공지 [필독] 질문하는 방법5 마스터 2018.02.23 533
아이고 자바스크립트 고수분들 도와주세요!!!2 Hanam09 2018.01.08 161
267 리디렉션 형태가 여러가지가 있던데 설명좀 해주실분 계신가요?4 참빛바다 2018.01.01 136
266 만약 광고를..13 Hanam09 2017.12.30 194
265 ssh 로 접속했는데, 왜 아무 명령어가 되지 않을까요?14 워시퍼 2017.12.23 176
264 Tracert 명령어의 사용 방법과 관련하여 질문 드립니다 ^^4 이니스프리 2017.12.21 226
263 질문이 있습니다!2 준그루 2017.12.17 125
262 php로도 irc 접속이 가능한가요?2 준그루 2017.12.16 134
261 다른 버튼은 바꾸어봤지만 요 + 버튼은 찾을 수 가 없네요... Blessed_Umbrella 2017.12.14 85
260 서브도메인 적용 방법좀 알려주실수있을까요? Blessed_Umbrella 2017.12.13 85
259 실시간 오디오 스트리밍을 하고 싶습니다. 도와주세요.6 김윤광 2017.12.13 240
258 이 "게시" 버튼이 오작동하여 떼어버리려고합니다.2 Blessed_Umbrella 2017.12.12 119
257 그누보드 게시글 자동 작성 php 파일 관련해서 질문 드려요 ^^10 이니스프리 2017.12.12 458
256 호스팅서비스를 변경하려면 어떻게 해야 하나요?1 칸달프 2017.12.11 111
255 이게... 무슨상황인거지요?12 Blessed_Umbrella 2017.12.10 406
254 미디어위키 각주 확장기능 도움2 Blessed_Umbrella 2017.12.08 158
253 "크롬이 응답하지 않습니다. 다시 시작하시겠습니까?" 오류 관련 질문 드려요 ^^8 이니스프리 2017.12.05 2191
252 이미지 트래픽 절감에 관련하여 질문 드려요7 이니스프리 2017.12.05 236
251 리버티스킨 목차 버튼 삭제3 Blessed_Umbrella 2017.12.04 149
250 에.. 서명이 어디갔지...1 Blessed_Umbrella 2017.12.04 116
249 인용문, 가로줄등이 작동하지 않습니다.5 Blessed_Umbrella 2017.12.03 106
이전 1 ... 5 6 7 8 9 10 11 12 13 14... 23다음
첨부 (0)
서버에 요청 중입니다. 잠시만 기다려 주십시오...