2010-07-19 7 views
0

간단한 HTML 파일을 캔버스에로드하려고했습니다 (브라우저 = ff 3.66).악명 높은 "종결되지 않은 문자열 리터럴"오류를 피하는 방법은 무엇입니까?

var canvas= document.getElementById('oneElement'); 
var ctx= canvas.getContext('2d'); 

var img= new Image(); 
ctx.drawImage(img, 0, 0, img.width, img.height); 
img.src = 'data:text/html,<table><tr><td>data 1<td>data 2</td></tr> 
<tr><td>data 3><td>data 4</td></tr> 
<tr><td>data 5><td>data 6</td></tr> 
</table> 
'; 

이 문제를 해결하려면 어떻게해야합니까?

답변

1

자바 스크립트 문자열 안에 개행 문자가있는 것 같습니다. 허용되지 않습니다. 당신이 읽을 수있는 코드를 유지하려는 경우

img.src = 'data:text/html,<table><tr><td>data1<td>data2</td></tr><tr><td>data 3><td>data 4</td></tr><tr><td>data 5><td>data 6</td></tr></table>'; 

가 아니면, 솔루션은 여러 개의 작은 문자열을 사용하는 수 있으며, 문자열을 사용 :

만 한 줄의 문자열을두고, 그 줄 바꿈을 제거해야합니다 -concatenation :

img.src = 'data:text/html,<table><tr><td>data 1<td>data 2</td></tr>' + 
'<tr><td>data 3><td>data 4</td></tr>' + 
'<tr><td>data 5><td>data 6</td></tr>' + 
'</table>'; 
+0

파스칼, 감사합니다. 문자열 연결 기술을 사용하여 올바른 구문을 만들었습니다. 그러나 함수가 실패했습니다. 즉, 도 아닙니다. var tm = document.createElement ('img'); tm.src = '데이터 : text/html, {html code here}}; 도 다음 FF 3.66 내가 붙어있어 함께 일하는 것이 위의 유사한 HTML 데이터 호출 에 의 SRC지도의 drawImage 방법으로 캔버스를 사용. 지금 뭐야? –

0

닫는 작은 따옴표가있는 행 앞에 각 행의 끝에 '\'문자를 추가해야합니다.

img.src = 'here \ 
is an \ 
example'; 
관련 문제