2014-07-13 7 views
-4

"GenQR"버튼을 클릭하면 아무 일도 일어나지 않습니다.JS 함수가 정의되지 않았습니다.

Fiddle

콘솔

Uncaught ReferenceError: JSQR is not defined(index):26 
myqr (index):26 
(anonymous function) (index):51 
jQuery.event.dispatch jquery-2.1.0.js:4371 
elemData.handle 

HTML

<button type="button" id="qr"/>GenQR</button> 

qr.js 당신의 JS 함수를 호출 myqr에서

document.addEventListener('DomContentLoaded', function() { 
    document.getElementById('qr').addEventListener('click', myqr); 
}); 
(function myqr() { 
    var qr = new JSQR(); 
    var code = new qr.Code(); 

    code.encodeMode = code.ENCODE_MODE.BYTE; 
    code.version = code.DEFAULT; 

    code.errorCorrection = code.ERROR_CORRECTION.H; 

    var input = new qr.Input(); 
    input.dataType = input.DATA_TYPE.TEXT; 

    input.data = 'test'; 

    var matrix = new qr.Matrix(input, code); 


    matrix.scale = 10; 
    matrix.margin = 10; 
    var canvas = document.createElement('canvas'); 
    canvas.setAttribute('width', matrix.pixelWidth); 
    canvas.setAttribute('height', matrix.pixelWidth); 
    canvas.getContext('2d').fillStyle = 'rgb(0,0,0)'; 
    matrix.draw(canvas, 0, 0); 

    document.body.appendChild(canvas); 
})(); 
+0

'min.js' 파일이 무엇입니까? – redditor

+1

'JSQR이 정의되지 않았습니다 .'는 충분히 명확한 오류입니다. 무엇이 정의되어야한다고 생각합니까? – Quentin

답변

1

는(), 다음과 같은 문장이 있습니다데도 코드에서이 JSQR이 정의되지 않은, 그러나

var qr = new JSQR(); 

을, 따라서 브라우저는 '아무튼 당신이 말하는 것을 알고 오류를 던집니다. 위에서 언급 한 오류가 함수가 종료 일어난다 때 때문에

또한, 아무것도 코드에 여러 가지 문제가 당신이 제공 바이올린

0

... 버튼을 클릭에서 발생하지 않습니다. Jsqr은 다른 사람들이 언급했듯이 정의되지 않은 첫 번째 중요한 것입니다. 외부 참조를 jsqr 라이브러리 (http://code.jsqr.de/jsqr-0.2-min.js)로 설정해야합니다. 그렇지 않으면 라이브러리가 무엇인지 알 수 없습니다.

바이올린 : 두 번째 문제는 스크립트가 클릭 이벤트가 발생하면 해고되지 않습니다 따라서로드되어 화재 자체 호출 기능이라고했다한다 http://jsfiddle.net/mcfarljw/n9PbR/

. DomContentLoaded 청취자의

function myqr() { 
    //your code here 
} 

마지막으로, 당신이 포장 한 사용자의 클릭 이벤트 리스너 :

(function myqr() { 
    //your code here 
})(); 

당신은 그냥 이런 기능을해야한다. 스크립트가 onLoad를 실행하도록 이미 설정되어 있기 때문에 jsfiddle을 사용할 때 필요하지 않습니다. 그래서 바이올린 예를 들어 그것을 제거 할 수 있습니다,하지만 당신은 다른 로컬 코드에 같은 것을 넣어해야합니다.

관련 문제