我在名为cookieRedirect.js的外部文件中有Load()函数,我想在tag之前加载该函数。 我曾经像这样加载它:
<script type="text/javascript" src="cookieRedirect.js"></script>
</head>
<body onload=Load();>
但是当我尝试这个时它不起作用:
<script type="text/javascript" src="cookieRedirect.js">
window.onload=Load();
</script>
</head>
<body>
答案 0 :(得分:4)
如果要在页面加载之前加载该功能,只需将脚本代码添加到页面的<head>
,而不是正文中。 window.onload
或onload=""
只会在加载页面时执行您的代码,而不是之前。
这样做:
<html>
<head>
<script src="cookieRedirect.js"></script>
<script>
Load();
</script>
<head>
<body>
</body>
</html>
答案 1 :(得分:0)
您不能在src
代码和内联JavaScript中包含script
属性,并希望它们都能执行。如果您这样做,只会执行src
属性。见http://ejohn.org/blog/degrading-script-tags/
您可以将它们拆分为单独的标记,如下所示:
<script src="cookieRedirect.js">
</script>
<script>
window.onload='Load';
</script>
如果您希望在加载HTML文档之前执行Load()
,则可以执行以下操作:
<script src="cookieRedirect.js">
</script>
<script>
Load();
</script>
但请注意,它将阻止解析和呈现HTML,直到Load()
完成。因此,如果Load()
可能需要一些时间,那么这可能会对性能产生负面影响。对于重定向脚本,这不太可能是一个问题,但一般要记住这一点。