我的身体里面有一个脚本,一个相对较长的脚本,我想把它放在一个单独的.js文件中,然后只是在身体负载上调用该函数而不是在体内有脚本但是我没有知道怎么称呼它。帮助
脚本:
<script type="text/javascript">
// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax = 35
// Set the colors for the snow. Add as many colors as you like
var snowcolor = new Array("#ddddff", "#ccccdd", "#f3f3f3", "#f0ffff")
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype = new Array("Times", "Arial", "Times", "Verdana")
// Set the letter that creates your snowflake (recommended: * )
var snowletter = "*"
// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed = 0.6
// Set the maximum-size of your snowflakes
var snowmaxsize = 30
// Set the minimal-size of your snowflakes
var snowminsize = 8
// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingzone = 1
///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS HERE
///////////////////////////////////////////////////////////////////////////
// Do not edit below this line
var snow = new Array()
var marginbottom
var marginright
var timer
var i_snow = 0
var x_mv = new Array();
var crds = new Array();
var lftrght = new Array();
var browserinfos = navigator.userAgent
var ie5 = document.all && document.getElementById && !browserinfos.match(/Opera/)
var ns6 = document.getElementById && !document.all
var opera = browserinfos.match(/Opera/)
var browserok = ie5 || ns6 || opera
function randommaker(range) {
rand = Math.floor(range * Math.random())
return rand
}
function initsnow() {
if (ie5 || opera) {
marginbottom = document.body.scrollHeight
marginright = document.body.clientWidth - 15
} else if (ns6) {
marginbottom = document.body.scrollHeight
marginright = window.innerWidth - 15
}
var snowsizerange = snowmaxsize - snowminsize
for (i = 0; i <= snowmax; i++) {
crds[i] = 0;
lftrght[i] = Math.random() * 15;
x_mv[i] = 0.03 + Math.random() / 10;
snow[i] = document.getElementById("s" + i)
snow[i].style.fontFamily = snowtype[randommaker(snowtype.length)]
snow[i].size = randommaker(snowsizerange) + snowminsize
snow[i].style.fontSize = snow[i].size + 'px';
snow[i].style.color = snowcolor[randommaker(snowcolor.length)]
snow[i].style.zIndex = -1;
snow[i].sink = sinkspeed * snow[i].size / 5
if (snowingzone == 1) {
snow[i].posx = randommaker(marginright - snow[i].size)
}
if (snowingzone == 2) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size)
}
if (snowingzone == 3) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4
}
if (snowingzone == 4) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2
}
snow[i].posy = randommaker(2 * marginbottom - marginbottom - 2 * snow[i].size)
snow[i].style.left = snow[i].posx + 'px';
snow[i].style.top = snow[i].posy + 'px';
}
movesnow()
}
function movesnow() {
for (i = 0; i <= snowmax; i++) {
crds[i] += x_mv[i];
snow[i].posy += snow[i].sink
snow[i].style.left = snow[i].posx + lftrght[i] * Math.sin(crds[i]) + 'px';
snow[i].style.top = snow[i].posy + 'px';
if (snow[i].posy >= marginbottom - 2 * snow[i].size || parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])) {
if (snowingzone == 1) {
snow[i].posx = randommaker(marginright - snow[i].size)
}
if (snowingzone == 2) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size)
}
if (snowingzone == 3) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4
}
if (snowingzone == 4) {
snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2
}
snow[i].posy = 0
}
}
var timer = setTimeout("movesnow()", 50)
}
for (i = 0; i <= snowmax; i++) {
document.write("<span id='s" + i + "' style='position:absolute;top:-" + snowmaxsize + "'>" + snowletter + "</span>")
}
if (browserok) {
window.onload = initsnow
}
</script>
答案 0 :(得分:3)
你可以直接使用<body onload="aFunction()">
使用HTML正文声明,或者你可以使用我发现更具可读性的jQuery做同样的事情:
$(document).ready(function() {
aFunction();
});
// This will wait for the DOM (your HTML) to be loaded before executing aFunction
甚至做:
$(window).load(function () {
aFunction();
});
// This will wait for every element in the page (including CSS, JS files ...)
// to be loaded before executing aFunction
使用jQuery代替传统Javascript的另一个好处是,您的代码可以在所有主流浏览器中使用。
答案 1 :(得分:2)
创建一个新文件script.js
将所有脚本移入其中并将其添加到文档中:
<script type="text/javascript" src="script.js"></script>
然后在文件中使用onload事件:
window.onload = function () {
all your code goes here.
}
答案 2 :(得分:2)
由于你已经在脚本底部有一个window.onload赋值并且脚本当前有效,我认为如果你只是把它放在一个单独的文件中它会工作正常,然后用普通的脚本标签包含它当前代码的位置。
所以,只需将脚本复制到snowScript.js
,然后将此行替换为当前代码:<script type="text/javascript" src="snowScript.js"></script>