2010-05-10 6 views
1

에서 자바 스크립트 함수 못해 화재 :이 코드가 IE

<body onLoad="subcatSelection();"> 

기능이 코드에 포함되어은 .js 파일 내부 :이 기능은 경고를 포함

<script type="text/javascript" src="bincgi/search_lists.js"></script> 

(' 여보세요'); 테스트 목적으로 만 호출되는지 여부를 확인할 수 있지만 실제로는 호출되지 않습니다.

Explorer 6의 왼쪽 하단 모서리에서 호출 된 "Page error"가 표시되고 두 번 클릭하면 body-onload 이벤트 인 LINE x ROW y에 오류가 있다고 가정합니다.

누구에게도 ide가 있습니까?

당신이 더 필요한 경우 입력 날 ... 감사

을 알려

UPDATE : 지금까지 내가에서 보는 바와 같이

onload 이벤트 이전에 일부 HTML ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="bincgi/search_lists.js"></script> 
<script type="text/javascript" src="bincgi/jsfunctions.js"></script> 
<script type="text/javascript" src="bincgi/calendar_eu.js"></script> 
<link href="bincgi/main_styles.css" rel="stylesheet" type="text/css"> 
<link href="bincgi/calendar.css" rel="stylesheet" type="text/css"> 
<!--[if lt IE 8]> 
<link href="bincgi/main_styles_ie_lt7.css" rel="stylesheet" type="text/css"> 
<![endif]--> 

<style type="text/css"> 
body { 
    background-color: #fffec7; 
    background-image: url(Graphics/test_bgr.gif); 
    background-repeat: repeat-x; 
} 
</style> 

</head> 
<body onLoad="subcatSelection();"> 
+0

오류 메시지가 무엇입니까? –

+0

페이지에서 호출되기 전에 스크립트 파일을 포함하고 있습니까? ''에 있습니까? –

+0

Nick : 예 ... –

답변

0

[Juriy] 대답이 작동하지 않은 경우, 다음 페이지에서 함수를 호출하려고 :

<script type="text/javascript" src="bincgi/search_lists.js"></script> 
<script type="text/javascript" > 
    alert("first test"); 
    subcatSelection(); 
</script> 

하는 경우 그건 작동하지 않습니다, 그것은 사소한 문제가되어야합니다 (예 : 파일 브라우저를 다시 시작해야하고, 캐시를 정리해야합니다. 등).

+0

ok thanks ... 지금 시도해 보았습니다. 경고 상자가 표시되지만 함수가 호출되지 않습니다 ... 감사합니다. –

0

을 이 문제는 search_lists.js의 다른 행 (subcatSelection 정의 이전 일 수 있음)에있을 수 있습니다. IE는 파싱을 중지하고 함수를 올바르게로드하지 않습니다. 해당 파일에 하나의 함수 정의를 떠나 어떻게되는지보십시오 :

function subcatSelection() { 
    alert ("Hello"); 
} 
+0

그냥 시도하고 작동하지 않았습니다 ... 파일이 전혀 호출되지 않는 것 같습니다 ... –

+0

확인 업데이트 ... –

+0

확인 . 브라우저에서 해당 파일을 가리 키도록하십시오. 그것은 내가 상상할 수있는 마지막 버전입니다 :-) 또한 FF 나 다른 브라우저에서 실행하여 문제가 재현되는지 봅니다. 어쨌든 테스트 케이스를 최소화하여 가능한 모든 문제를 제거해야합니다. – Juriy

0

함수의 올바른 정의를 피하는 것이 구문 오류가있을 가능성이있을 수 있습니다. 그 함수에게 당신의 .js 파일의 유일한 기능을 확인, 테스트 경고 ("안녕하세요!) 넣고 다시 시도하십시오.

+0

http://jslint.org –

0

을 권한을 확인, 당신은 다른 비트를 작동하는 CGI bin 폴더 내에서 실행되는

또한 (더 이상 CGI를 사용하는) 당신의 CGI와의 js 파일을 혼합하지 제안

+0

로컬 컴퓨터 ... 가상 서버 등 ... –

0

IE6에서만 내가 이해할 수있는 문제가 있기 때문에 먼저 파일을 올바르게 다운로드했는지 확인하기 위해 Fiddler을 사용하려고합니다. 그렇다면 search_list.js의 내용을 다음과 같이 수정합니다.

alert('Before def'); 
function subcatSelection() { 
    alert('In subcatSelection'); 

} 
alert('After def'); 

다음과 같은 페이지를 만들어 'Before def', 'After def', 'Before Call', 'In subcatSelection', 'After Call'순서로 알리미가 있는지 확인하십시오.

그 시점에서 아직 문제가 어디에 있는지 확실히 알아야합니다. 오류가 없다면, 조각을 하나씩 다시 연결하기 시작하십시오 (body onload에서 호출을 이동 한 다음 search_list.js에 코드를 다시 추가 한 다음 다른 JS를 다시 추가 한 후 다시 시도하십시오. 등)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="bincgi/search_lists.js"></script> 
<script type="text/javascript"> 
    alert("Before Call"); 
    subcatSelection(); 
    alert("After Call"); 
</script> 
</head> 
<body>test</body></html>