저는이 문제에 정말로 어려움을 겪고 있습니다. 당신이, 내가 카운트 다운 기능을 contsruct하기 위해 노력하고있어 볼 수 있듯이자바 스크립트에서 함수를 인수로 전달합니다.
function webcamupdate(webcamurl) {
alert("I am a function to update the webcam with the url "+webcamurl);
}
function countdown(callback) {
alert(callback);
setTimeout("callback()", 10000);
}
var theurl = "THIS IS THE URL";
countdown(function(){ webcamupdate(theurl); });
(더 코드가,하지만 난 그냥 기본을 게시 한) 함수를 실행합니다 (-이 : 여기
코드입니다 10 초 후 웹캠 업데이트). 함수가 다음 coundown 함수의 인수, 그러나 알림 (콜백)이없는 반환하는 경우모든 확인을 작동합니다 -
기능() {webcamupdate (theurl); }
물론 "webcamurl"이 정의되지 않았으므로 webcamupdate 기능이 실행될 때 스크립트가 충돌합니다. (콜백) 실제로 말을 할 필요가
무엇 경고는 다음과 같습니다 -
기능() {webcamupdate ("이것은 URL입니다"); }
즉, 함수를 전달하기 전에 인수 "theurl"을 평가합니다.
모든 아이디어를 많이
편집을 감상 할 수있다
나는 아마도 당신이 내 오히려 기능보다 경고를 사용하여 속일 것 같아 (난 그냥 간단하게하려고 노력했다!)
다음은 원래 코드입니다 (여전히 줄이거 나 더 나은 아이디어를 제공합니다). 카운트 다운을 표시, 초 DOM 요소를 카운트 다운 시간 및 기능은 제한 시간에 실행 - 그것은 3 개 인수를 -
function webcamupdate(url) {
document.getElementById("cruisecam").src=url+"&rand="+Math.random();
countdown(30,"Webcam",function(){ webcamupdate(url); });
}
function countdown(currentcount,displayelement,callback) {
var displaytext;
if (currentcount == 0) displaytext = displayelement+" is refreshing now";
else displaytext = displayelement+" updating in "+currentcount+" seconds";
if (trackingcountdown.hasChildNodes()) clearelement("trackingcountdown");
trackingcountdown.appendChild(document.createTextNode(displaytext));
if (currentcount == 0) {
countdown(currentcount,displayelement,callback)
}
else {
currentcount--;
var countdownparameters=currentcount+',"'+displayelement+'",'+callback;
setTimeout("countdown("+countdownparameters+")", 1000);
}
}
//The function is called on window loading with
//countdown(30,"Webcam",function(){ webcamupdate(url); });
//clearelement is another function (not listed) that clears the node.
기본적으로, 중요한 카운트 다운 기능입니다.
세 번째 인수 (함수)에 자체의 인수가없는 경우 - 예 : webcam() - 잘 작동하지만 웹캠 ("webcampic.jpg")을 추가하려고하면 웹캠 ("webcampic.jpg") 대신 웹캠 (url)을 실행하려고하는 기능 때문에 작동하지 않습니다.
분명히 가장 쉬운 해결책은 url을 전역 변수로 만드는 것입니다. 그러나 이것은 좋은 습관이 아니며 js 파일을 통해 다른 페이지에서 카운트 다운 코드를 사용하는 것을 막을 수 있습니다. 도움!
"실제로 어떤 경고 (콜백)가 필요한가 ..."JavaScript가 작동하는 방식이 아닙니다. – zzzzBov
그러면 모든 것이 끝나고 끝날 때 경고가 무엇을 말해야합니까? – arb