如何访问在我的HTML-Document中初始化的对象?
我的HTML-Document看起来像这样:
...
<script type="text/javascript" id="controller">var controller = false;</script>
...
<body onload="controller = new CTRLclass()">
....
如何使用DOM-Operations或simmilar在外部Javascript文件中调用controller.doAMethod()?
编辑: PPL,我有很多.js文件,我的控制器正在他的构造函数中创建另一个类的实例。在创建的类实例中,我需要访问控制器以调用update-Function。 喜欢:控制器 - &gt;创建类的实例。 class - &gt;需要调用controller.update()。 我如何在'class'中访问控制器 - 多数人
THX!
答案 0 :(得分:1)
您不需要onload标记来启动onload任务。只是把这是外部的javascript文件:
var controller = false;
function Init(){
controller = new CTLRclass;
}
function addEvent(el, eType, fn, uC) {
var uC = uC || true;
if (el.addEventListener) {
el.addEventListener(eType, fn, uC);
return true;
} else if (el.attachEvent) {
return el.attachEvent('on' + eType, fn);
} else {
el['on' + eType] = fn;
}
}
addEvent(window, 'load', Init);
答案 1 :(得分:0)
我实际上无法想象你为什么要这样做。简单地删除上面的所有Javascript,所以你只需要:
...
<script type="text/javascript" src="myjsfile.js"></script>
...
<body>
....
在myjsfile.js中做了类似
的事情window.onload = function(){
var controller = new CTRLclass();
}
如果它必须是全局的,那么你可以将它移到onload函数之外:
var controller = false
window.onload = function(){
controller = new CTRLclass();
}
当然,使用jQuery会使它更优雅,因为你不会冒险覆盖任何现有的onloads:
var controller = false
$(document).ready(function(){
controller = new CTRLclass();
});