2010-05-15 48 views
0

我从我的主页上加载了一个外部js文件,并带有一个函数。Javascript:我可以在主页面的外部文件中调用一个函数吗?

我在调用javascript函数的主页面中有一个flash文件。

一切工作都很好,直到当JavaScript代码在主文件中,但是当我将javascript移动到外部文件时,函数似乎不再被调用。

因此......没有办法将javascript代码移动到外部文件中?或者其他解决方案?

感谢

更新

主文件

... 
<script type="text/JavaScript" src="../sites/all/themes/zen/zen/main.js" /></script> 
</head> 

js文件:

$(document).ready(function() { 

    function changeSize(objectId, width, height) { 

     alert("changeSize called"); 

... 
+0

在'head'部分和外部文件中,JS没有根本的区别。它们应该可以被调用。你能展示你如何嵌入文件? – 2010-05-15 16:44:42

+0

我已更新问题 – aneuryzm 2010-05-16 08:11:47

+0

由于changeSize是在匿名函数内声明的,因此它只能在同一个匿名函数或函数中声明的内部调用。 – svinto 2010-05-16 09:08:05

回答

1

当您将JS移动到外部文件时,您是否添加了$(document).ready(function() {

由于你正在将函数包装到另一个函数中,所以你限制了它的范围,所以它不是全局的,这将使它很难从ready函数外调用它(例如,Flash将无法找到它)。

+0

好酷谢谢,现在它的工作。那么我应该在哪里使用$(document).ready(function()?我不能在外部文件中使用它?或者不再需要,因为我正在加载外部文件? – aneuryzm 2010-05-16 10:26:02

+0

当您希望代码运行时使用它DOM已准备就绪,这通常是在它内部的代码需要访问源代码中的脚本之后出现的元素时。 – Quentin 2010-05-16 11:11:46

0

只要与所需要的功能文件包含(并允许完全加载)那么将javascript放置在文档中或单独的文件中就没有区别。

你确定外部JavaScript包含正确,并且它们按正确顺序吗?

+0

我更新了问题 – aneuryzm 2010-05-16 08:12:15

0

问题的两个最可能的原因是在这里:

  • 您已经离开HTML注释或XML CDATA标记在JS当你把它移动到外部文件
  • 你已经得到了错误的URI
+0

(1)JS文件只包含我在问题中写的函数,没有其他标记(或者我误解了你?)(2)我用FireBug进行了测试, t获取任何“文件未找到”错误消息。该文件正确加载 – aneuryzm 2010-05-16 09:07:51

相关问题