3

我已经查看了与此类似的其他问题,但我还没有找到答案。

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

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

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

4

4 回答 4

1

确保您的脚本标签是正确的。

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

它应该是:

<script src="myscript.js" type="text/javascript"></script>
于 2014-07-31T10:48:30.177 回答
0

尝试远离内联调用并按照预期使用 jQuery。通过保持您的风格和脚本逻辑分开,它非常好的工作实践(更不用说更容易调试)。

对于负载的身体,使用这个。

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

或者它可以进一步缩短到

$(function () {
    doStuff();
});
于 2012-09-03T16:41:18.217 回答
0

无论出于何种原因,在 Firefox 中,我在页面正文中声明的脚本阻止了内联调用的触发。我将我的脚本标签移动到标题,然后它工作了。

于 2017-04-25T21:40:39.347 回答
-2

未捕获的语法错误(参见原始帖子中的评论)的问题是,当我将 PHP 数组转换为 JavaScript 数组时,出现了问题,即附加了一个奇怪的字符。我通过用以下代码替换我的 DIY PHP-array-to-JS-array 代码解决了这个问题:

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

这与帖子的标题问题并没有真正的联系,但这是根本问题。

于 2012-09-05T11:11:22.590 回答