【发布时间】:2012-05-24 23:25:08
【问题描述】:
我正在尝试将我自己的对象参数添加到画布元素中,就像在 jquery 中一样(就像它将 element_id.draggable、element_id.resizable 等添加到 dom 元素中一样)。我的一段代码如下所示:
window.addEventListener("DOMContentLoaded",handler,false);
function handler()
{
HTMLCanvasElement.prototype.animateLine=function(x1,x2,y1,y2,params) {
if(params)
init(this,x1,x2,y1,y2,params.lineColour,params.lineWidth,params.divisions,params.totalTime,params.callback);
else
init(this,x1,x2,y1,y2);
};
}
这样当用户声明一个canvas标签时,就可以直接调用canvas_id.animateLine()来执行上述函数。
但出现的问题是,当用户在body onload或window onload中调用animateLine()时,它不起作用(说animateLine未定义)。
我想知道这是实现它的正确方法吗?另外,由于我也必须在 body/window onload 上调用它,因此如何从上述代码中删除错误?
编辑:更新代码以在 DOM 就绪时调用函数,但如果用户在 DOM 就绪时调用 animateLine,它仍然不起作用。有什么解决办法吗?
【问题讨论】:
-
尝试在加载 dom 而不是窗口时添加 animateLine。加载所有 ELEMENTS 时加载 DOM。 window.onload 在下载完所有资源后触发。下载。这是一个链接:stackoverflow.com/questions/1206937/…
-
@d4rkpr1nc3:好的,它可以工作,但是如果用户在 DOM 就绪时调用它怎么办?那么它将无法正常工作。
标签: dom javascript-objects javascript onload-event