最近我一直在研究一個Greasemonkey腳本,它會將圖像添加到某個頁面,http://fairview.deadfrontier.com確切地說,具有允許在添加的圖像上繪製的功能。greasemonkey畫布腳本
我對JavaScript沒有經驗,所以經過一段痛苦而漫長的過程後,我設法創建了一個獨立的腳本塊來完成這項工作,並且它在脫機使用.htm文件時工作得很好。
但是,當我將腳本上傳到userscripts.org並安裝在Greasemonkey中時,它停止工作。我將不勝感激任何想法或解決方案,可以幫助我完成腳本,以便我可以分享它。這是有問題的腳本在一個.htm文件:
www.megaupload.com/?d=C92KR3ZO
pastebin.com/RTkx1YA7
就在這裏:
<script type="text/javascript">
window.onload = function() {
var oCanvas = document.getElementById("thecanvas");
var oCtx = oCanvas.getContext("2d");
var iWidth = oCanvas.width;
var iHeight = oCanvas.height;
oCtx.fillStyle = "transparent";
oCtx.fillRect(0,0,iWidth,iHeight);
oCtx.beginPath();
oCtx.strokeStyle = "rgb(255,0,0)";
oCanvas.onmousedown = function(e) {
bMouseIsDown = true;
iLastX = e.clientX - oCanvas.offsetLeft + (window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft);
iLastY = e.clientY - oCanvas.offsetTop + (window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop);
}
oCanvas.onmouseup = function() {
bMouseIsDown = false;
iLastX = -1;
iLastY = -1;
}
oCanvas.onmousemove = function(e) {
if (bMouseIsDown) {
var iX = e.clientX - oCanvas.offsetLeft + (window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft);
var iY = e.clientY - oCanvas.offsetTop + (window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop);
oCtx.moveTo(iLastX, iLastY);
oCtx.lineTo(iX, iY);
oCtx.stroke();
iLastX = iX;
iLastY = iY;
}
}
}
document.write("<canvas width=\"356\" height=\"700\" style=\"border: 1px solid black; background-image:url('http:\/\/i.imgur.com\/fI3qz.jpg'); position:fixed; top:10px; left: 10px;\" id=\"thecanvas\"><\/canvas>");
</script>
我也設法上傳一個工作腳本,將新增的圖片,但沒有繪圖功能。所以,如果這是任何幫助,這裏的鏈接:
userscripts.org/scripts/show/95862/
謝謝!
sovq:未來,請使用類似pastebin.com的東西鏈接到大型代碼文件。 megaupload.com是一大痛苦。 – 2011-02-02 14:25:59