2010-07-19 51 views
0

我試圖將一個簡單的HTML文件加載到畫布中(browser = 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

看來你的Javascript字符串裏面有換行符 - 這是不允許的。

您應該刪除這些換行符,把字符串中只有一行:

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 ='data:text/html,{html code here}; 也不使用帶的drawImage方法的帆布,然後 其SRC映射到上述類似的HTML數據呼叫 將與FF 3.66 我堅持工作。現在怎麼辦? Don – 2010-07-19 15:06:30

0

在每行末尾添加一個'\'字符,並在結束單引號的行之前應該有效。

img.src = 'here \ 
is an \ 
example'; 
相關問題