HTML onload没有调用JavaScript函数

时间:2012-09-03 16:07:55

标签: javascript html onload

我看过其他类似的问题,但我没有找到答案。

我的<body onload="doStuff()">已停止调用doStuff()JavaScript函数。我尝试将<body onload="doStuff()">替换为<body onload="alert('Test');">并成功创建警报。

然后我尝试在doStuff()函数内部放置相同的警报(并恢复onload以调用doStuff()),但警报没有出现。

为什么会发生这种情况有什么理由吗?此外,可能需要注意的是,我几乎可以肯定我没有在此工作之间进行任何代码更改而且它不起作用(您可能不相信,但这是真的);但是,我确实从包含Joomla安装的服务器中删除了一个子文件夹。

4 个答案:

答案 0 :(得分:1)

确保您的脚本标记正确无误。

<script src="myscript.js" />会导致<body onload="...">...</body>失败。

应该是:

<script src="myscript.js" type="text/javascript"></script>

答案 1 :(得分:0)

尝试远离内联调用并按原样使用jQuery。通过保持你的风格和脚本逻辑分离,它非常好的工作实践(更不用说调试了)。

对于负载上的身体,请使用此功能。

$(document).ready(function () {
    doStuff();
});

或者可以进一步缩短

$(function () {
    doStuff();
});

答案 2 :(得分:0)

无论出于何种原因在firefox中,我在页面正文中声明的脚本都阻止了内联调用的触发。我将脚本标记移动到标题然后就可以了。

答案 3 :(得分:-2)

未捕获的语法错误(请参阅原始帖子中的注释)的问题在于,当我将PHP数组转换为JavaScript数组时,出现了一些错误,即附加了一个奇怪的字符。我通过使用以下代码替换我的DIY PHP数组到JS数组代码来解决这个问题:

<?php
 $js_array = json_encode($resultsArray);
 echo "var jsResultsArray = ". $js_array . ";\n";
?>

这与帖子的标题问题没有关联,但这是根本问题。