2017-01-23 5 views
1

콘텐츠 관리 시스템 내에 구축 중이므로로드 기능으로 창의력을 발휘해야합니다.스크립트가 누락 된 경우 건너 뛰기 기능

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

== 테스트를 사용할 수 없습니다 때 === 시작 기능 @soviut 정체성 – Aubin

+0

에 대한 테스트는 alwasy 존재하는 모든 페이지에 자사를 모든 페이지에 존재하지 않는 randomHome 스크립트 ... – Valerie

+0

이것은 여전히 ​​var에서 깨지기 randH = randomHome(); – Valerie

0

이것은 결국 효과가있었습니다. 모두에게 감사합니다.

function start() { 

if(window.randomHome == undefined) 
{ 

    loadNAV(); 
} 

else { 
     randomHome(); 
     loadNAV(); 
} 
} 
window.onload = start; 
관련 문제