Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果缺少脚本,则跳过函数_Javascript_Function_Onload_Undefined Function - Fatal编程技术网

Javascript 如果缺少脚本,则跳过函数

Javascript 如果缺少脚本,则跳过函数,javascript,function,onload,undefined-function,Javascript,Function,Onload,Undefined Function,我正在构建一个内容管理系统,因此我必须对加载功能进行创新 我有两个脚本在加载时运行。主页和导航菜单的随机背景图像。我将两者都包含在一个单独的脚本中,该脚本在加载时运行。获取背景图像的唯一页面是主页。因此,在没有链接随机主脚本的所有其他页面上,脚本会出错,并且菜单不会加载 我想先执行背景图像。一个糟糕的解决方法是先加载菜单,然后让随机的主脚本在任何子页面上中断,但这并不理想,我希望找到一个解决方案 我想先加载图像,然后运行导航脚本。如果图像脚本未定义,我希望它跳过并执行导航脚本 这是我的密码: f

我正在构建一个内容管理系统,因此我必须对加载功能进行创新

我有两个脚本在加载时运行。主页和导航菜单的随机背景图像。我将两者都包含在一个单独的脚本中,该脚本在加载时运行。获取背景图像的唯一页面是主页。因此,在没有链接随机主脚本的所有其他页面上,脚本会出错,并且菜单不会加载

我想先执行背景图像。一个糟糕的解决方法是先加载菜单,然后让随机的主脚本在任何子页面上中断,但这并不理想,我希望找到一个解决方案

我想先加载图像,然后运行导航脚本。如果图像脚本未定义,我希望它跳过并执行导航脚本

这是我的密码:

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;

但这会在未获取背景图像的子页面上留下错误。因此,我正在搜索一个无错误的答案,该答案首先加载背景图像,或跳过背景图像,然后再加载导航。

创建一个加载时运行的匿名函数,并检查是否存在
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();
}

这就是最终成功的原因。谢谢大家

function start() {

if(window.randomHome == undefined )
{ 

    loadNAV();
}

else {
        randomHome();
        loadNAV();
}
}
window.onload = start;

undefined
是一个保留字,当===testforequality时,不能用作变量名==testforequalityidentity@soviutstart函数一直存在于每一页上,它的randomHome脚本并不存在于每一页上……这仍然在var randH=randomHome()处中断;函数start(){var randH=randomHome();if(randH==undefined){return true;loadNAV();}否则{randomHome();loadNAV();}}window.onload=start;window.onload=function(){if(randomHome){randomHome();loadNAV();}else{loadNAV();}@这就是你的意思吗?问题是,它仍然认为randomHome是未定义的。