在js文件外部调用JavaScript函数

在js文件外部调用JavaScript函数,javascript,html,Javascript,Html,我在从其他HTML页面调用JavaScript函数(在对象内部,在它自己的.js文件中)时遇到问题。在exsample代码中,我将只使用一个简单的Hello World函数 //.js file window.addEvent('domready',function(){ var Site = { //Here I have like three other functions //This function I want to dete


我在从其他HTML页面调用JavaScript函数(在对象内部,在它自己的.js文件中)时遇到问题。在exsample代码中,我将只使用一个简单的Hello World函数

//.js file window.addEvent('domready',function(){ var Site = { //Here I have like three other functions //This function I want to detect the browser version. I use MooTools for this detectBrowser : function(){ if(Browser.ie){ //Then what ever content goes here } } } //I execute the other three functions here because they need to be called on every page Site.dropdownmenu(); Site.accordion(); Site.lightbox(); }); 那不行。有什么想法吗?

如果我在.js文件中执行它,它就可以正常工作。但我不希望它在每个页面上都执行。

外部Javascript文件只执行代码;代码不知道它来自哪里


只要代码在外部JS文件之后运行,它就可以正常工作。

如果在函数中使用
var
声明变量,则该变量是该函数的局部变量,并且从该函数外部无法访问。要使其显式全局化,请将其声明为
窗口的属性

window.addEvent('domready',function(){
    window.Site = ...

这对代码的运行不是必需的,它只是让可能阅读您的代码的程序员明白,
站点
是一个全局的。

警报是一个标准的javascript函数,因此请先将其称为其他函数。您没有发布足够的代码,让任何人都知道有什么问题。请向我们展示一个(非-)工作示例。这就是我尝试的。它不起作用。@Emil我重复一遍,你没有发布足够的代码。告诉我们“站点”的定义是什么。例如,它是否在另一个函数中?是的,但我认为这就是问题所在。站点变量不是全局变量。您只能在站点对象内部访问它。这就是为什么如果您希望在函数外部访问它,就不应该使用
var
。也不是这样,虽然在这种情况下它可能是合理的。我试图删除var并用window.Site={…它仍然不起作用。我不知道发生了什么
window.addEvent('domready',function(){
    window.Site = ...