我正在内容管理系统中构建,因此我必须使用加载功能获得创意。
我有2个脚本在加载时运行。主页和导航菜单的随机背景图像。我将它们都包含在一个在加载时运行的单独脚本中。获取背景图像的唯一页面是主页。所以在没有链接随机主页脚本的所有其他页面上,脚本出错并且菜单没有加载。
我希望首先执行背景图像。一个糟糕的工作是首先加载菜单,并让随机主页脚本在任何子页面上中断,但这不是理想的,我希望找到一个解决方案。
我想首先加载图像,然后运行导航脚本。如果图像脚本未定义,我希望它跳过,并执行导航脚本。
这是我的代码:
function start() {
var randH = randomHome();
var undefined = false;
if (randH === undefined) {
loadNAV();
}
else {
randomHome();
loadNAV();
}
}
window.onload = start;
这两个函数链接在不同的文件中,如下所示,工作正常:
function start() {
loadNAV();
randomHome();
}
window.onload = start;
但是这会在没有获得背景图像的子页面上留下错误。所以我正在寻找一个没有错误的答案,首先加载背景图像,或者跳过它,然后导航。
答案 0 :(得分:2)
创建一个在加载时运行的匿名函数,并检查是否存在start()
函数。如果存在,请调用它。
window.onload = function() {
if (start) {
start();
}
};
删除undefined = false
行。 undefined
是一个保留关键字,已经评估为" falsy"您所做的事情会导致很多问题依赖于undefined
关键字。相反,请将if
语句更改为使用==
而不是===
。 ==
评估相等性,===
评估身份。
如果您尝试阻止randomHome()
脚本运行,如果它不存在,则会在start()
函数中使用相同的代码。
function start() {
// only call randomHome function if it exists
if (randomHome) {
var home = randomHome();
// anything else to do with the homes goes here
}
// load the nav regardless of whether randomHome exists
loadNAV();
}
答案 1 :(得分:0)
这就是最终的工作。谢谢大家。
function start() {
if(window.randomHome == undefined )
{
loadNAV();
}
else {
randomHome();
loadNAV();
}
}
window.onload = start;