After a quick test, I'm not sure Chrome or Firefox will even render a canvas that big.
My bet would be to create a canvas element but never append it to the DOM. Just like this:
var hiddenCanvas = document.createElement('canvas');
hiddenCanvas.width = 128000;
hiddenCanvas.height = 128000;
var hiddenContext = hiddenCanvas.getContext('2d');
Then create a smaller canvas that will actually display a portion of your hidden canvas
<canvas width="something reasonable" height="something reasonable" id="viewCanvas"/>
And use the drawImage method to draw portions:
var viewCanvas = document.getElementById('viewCanvas');
var viewContext = viewCanvas.getContext('2d');
viewCanvasContext.drawImage(hiddenCanvas, 40, 50, viewCanvas.width, viewCanvas.height, 0, 0, viewCanvas.width, viewCanvas.height);
Then it would be up to you to either provide up/down/right/left buttons to navigate, or maybe fake scrollbars by using 20px wide DIVs that would only show scrollbars and which you would hook an onscroll even listener on.
And each time the user changes position, do a call again to drawImage, updating the x/y positions (40 and 50 in my example).
Having said this, again, even when hidden I doubt that browsers will work with a canvas that big.
I happen to be looking for a solution to the same problem, so if in your research you get lucky, please share.