最近我一直在研究一个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