2017-01-23 11 views
1

Я создаю систему управления контентом, поэтому мне нужно проявить творческий подход к функциям загрузки.skip function if missing script

У меня есть 2 скрипта, работающих под нагрузкой. Случайное фоновое изображение для главной страницы и меню навигации. Я включил оба в отдельный скрипт, который запускается при загрузке. Единственной страницей для получения фонового изображения является домашняя страница. Таким образом, на всех других страницах, у которых нет связанного случайного домашнего скрипта, ошибки скрипта отсутствуют, и меню не загружается.

Я хотел бы, чтобы фоновое изображение выполнялось первым. Плохая работа заключается в загрузке меню в первую очередь, и пусть случайный домашний скрипт разбивается на любые вспомогательные страницы, но это НЕ идеально, и я надеюсь найти решение.

Сначала я хотел бы загрузить изображение, а затем запустить сценарий навигации. И в случае, если сценарий изображения не определен, я бы хотел, чтобы он пропустил и выполнил сценарий навигации.

Вот мой код:

function start() { 

var randH = randomHome(); 
var undefined = false; 
if (randH === undefined) { 
    loadNAV(); 
} 

    else { 
     randomHome(); 
     loadNAV(); 
     } 
} 

window.onload = start; 

2 функции связаны между собой в отдельных файлах и работать просто отлично, когда в списке как это:

function start() { 

    loadNAV(); 
    randomHome(); 

} 

window.onload = start; 

Но это оставляет ошибки на подстраниц, которые не получить фоновое изображение. Поэтому я ищу ответ на ошибку, который сначала загружает фоновое изображение, или пропускает его, а затем навигацию.

+2

'undefined' зарезервированное слово и не должны использоваться в качестве имени переменной – evolutionxbox

ответ

2

Создайте анонимную функцию, которая запускается при загрузке и проверяет наличие функции start(). Если он существует, вызовите его.

window.onload = function() { 
    if (start) { 
     start(); 
    } 
}; 

Удалить линию undefined = false. undefined является зарезервированным ключевым словом и уже оценивается как «ложный», и то, что вы сделали, вызовет много проблем для чего-либо еще, опираясь на ключевое слово 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(); 
} 
+0

== тест на равенство, когда === тест идентичности – Aubin

+0

@soviut функции запуска на каждой странице он alwasy существует, его скрипт randomHome, который не существует на каждой странице ... – Valerie

+0

Это все еще разбивается на var randH = randomHome(); – Valerie

0

Это то, что в конечном итоге работает. Спасибо всем.

function start() { 

if(window.randomHome == undefined) 
{ 

    loadNAV(); 
} 

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

 Смежные вопросы

  • Нет связанных вопросов^_^