2012-02-02 4 views
0

동적으로 javascript 파일을 html 페이지에 포함하고 있는데, 이는 정상적으로 작동합니다. 하지만 파일에서 'tryData'함수를 실행하면 변수가 정의되지 않은 값으로 반환됩니다. 나는 비슷한 문제를 어디서나 발견 할 수없는 시간을 찾고 있었는데, 문제가 무엇인지 아는 사람이 있습니까? 외부 파일에서Javascript 함수는 변수를 정의되지 않은 값으로 반환합니다.

기능 :

function tryData(id, size){ 
    document.getElementById('content').innerHTML = '<iframe src="http://domain.com/feeds/'+id+'/'+size+'/" id="frame"></iframe>'; 
    if(window.data){ 
     clearInterval(timer); 
     data(); 
    } 
} 

내가 전화를 사용하고있는 라인 :

tryData(131, 'large'); 

내가 함수가 예상대로 프레임이 삽입되어 있기 때문에 실행되고 있는지 알 수 없다, 그러나 거기 도메인의 콘텐츠는 'domain.com/feeds/131/large/'대신 'domain.com/feeds/undefined/undefined/'로 표시됩니다. JS 파일 여기

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta name="robots" content="NOINDEX,NOFOLLOW" /> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 


    <!-- Widget --> 
    <div id="content"></div>  
    <script> 
    (function(d, s) { 
    var js = d.createElement(s), ins = d.getElementsByTagName(s)[0]; 
     js.src = "http://domain.com/feeds/insert.js"; 
     ins.parentNode.insertBefore(js, ins); 
     tryData(131, 'large'); 
     }(document, 'script')); 
    </script> 
    <!-- Widget End --> 

</body> 
</html> 

됩니다 :

function data(){ 
    var u; 
    u = document.URL; 
    $.post("http://domain.com/data.php", { u: u}); 
} 

function tryData(id, size){ 
    document.getElementById('lsb').innerHTML = '<iframe src="http://domain.com/feeds/'+id+'/'+size+'/" id="frame"></iframe>'; 
    if(window.data){ 
     clearInterval(timer); 
     data(); 
    } 
} 

var script = document.createElement('script'); 
script.src = 'http://code.jquery.com/jquery-latest.js'; 
script.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(script); 

timer = setInterval(tryData, 100); 
+0

, 하드 매개 변수? –

+0

어떤 종류의 디버거 (각 브라우저마다 하나씩)를 사용하는 것은 어떻습니까 – SergeS

+0

쓰레기 입력 = 쓰레기 출력. 어떤 매개 변수가 전달됩니까? 그들은 어디에서 왔니? –

답변

4
도움 : 여기


에 미리

덕분에 기능이있는 HTML 페이지의 예입니다

어디에서 매개 변수를 전달합니까?

이 시도 : 당신은 그냥처럼 호출

timer = setInterval(function(){ 
    tryData(131, 'large'); 
}, 100); 
+0

나는 피곤하지만, 지속적으로 페이지를 다시로드하는 것 같다. 나는 그걸 가지고 놀고 내가 그것을 붙잡을 수 있는지 알아 보겠다. 감사합니다 – Paul

+0

그냥 "timer = setInterval (tryData, 100);" 이것에 대한 내 js 파일에서 나를 위해 일할 수 있습니다. 많은 분들께 감사드립니다. – Paul

관련 문제