fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url);"/> fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url);">
window.settimeout() 메소드에는 매개변수가 있는 함수를 호출하는 두 가지 방법이 있습니다.
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(function(){ searchJDWater(url);},100); }
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(“searchJDWater(”+url+“)”, 100); }
참고: 매개변수와 함께 setTimeout을 사용할 때 setTimeout("function name("+parameter+")", milliseconds) 에 주의하세요. 여기의 매개변수는 문자열 형식만 가능하며 객체를 전달할 수 없습니다
---------------
다음 방법은 다음과 같습니다. 틀렸습니다. 브라우저 상태 표시줄에 매개변수가 유효하지 않다는 메시지가 표시됩니다.
function init(){ var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url); window.setTimeout(searchJDWater(url), 100); }
-------------------------------- -- ---------------
settimeout() 함수 확장:
온라인에서 "매개변수가 포함된 setTimeout"을 찾아보세요. 많은 친구들이 있습니다. setTimeout을 사용하여 객체로 메서드 루프를 구현하는 방법은 여러 가지가 있습니다. 예:
<script language="javascript"> var __sto = setTimeout; window.setTimeout = function(callback,timeout,param) { var args = Array.prototype.slice.call(arguments,2); var _cb = function() { callback.apply(null,args); } __sto(_cb,timeout); } //测试代码 function aaaa(a) { alert(a); } function aaaaa(a,b,c) { alert(a + b + c); } var a = new Object(); window.setTimeout(aaaa,1000,a); window.setTimeout(aaaaa,2000,a,6,7); </script>
이 예에서는 setTimeout 사용법, setTimeout(콜백 함수, 시간, 매개변수 1,..., 매개변수 n)입니다.
또 다른 예:
<script type="text/javascript"> var _st = window.setTimeout; window.setTimeout = function(fRef, mDelay) { if(typeof fRef == 'function'){ var argu = Array.prototype.slice.call(arguments,2); var f = (function(){ fRef.apply(null, argu); }); return _st(f, mDelay); } return _st(fRef,mDelay); } function test(x){ alert(x); } window.setTimeout(test,1000,'fason'); </script>
이 예에서는 window.setTimeout이 다시 로드되고 Apply를 사용하여 이전 함수를 콜백합니다.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test("+ obj +")",1000); } </script> <input id="testButton" type="button" onclick="test(1)">
마우스가 이 버튼을 누르면 test()를 호출하여 "1"을 전달하고 대화 상자가 1000밀리초(1초)마다 화면에 팝업되어 1을 표시하며 문제 없습니다.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test("+ obj +")",1000); } </script> <input id="btnTest" type="button" onclick="test(this)">
여기서는 document.getElementById("btnTest")로 이해하면 됩니다. 마우스가 이 버튼을 누르면 테스트 함수에 개체가 전달되고 화면에 표시되지 않습니다. 1000밀리초 후. 여기서 문제가 발생합니다. 브라우저 왼쪽 하단에 스크립트 오류가 보고되고, 자세한 정보에는 개체가 정의되지 않은 것으로 표시됩니다.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test()",1000); } </script> <input id="testButton" type="button" onclick="test(this)">
setTimeout의 test()에는 매개변수가 없습니다. 처음에는 [object]를 표시하고 1000밀리초 후에는 정의되지 않았습니다. 즉, 이 방법을 사용할 수 있습니다. 매개변수를 사용하여 메소드 루프를 구현하지만 매개변수가 삭제됩니다.
사실 이는 구현이 매우 간단하며 이를 달성하기 위해 그렇게 긴 코드를 작성할 필요가 없습니다.
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test('"+ obj +"')",1000); } </script> <input id="testButton" type="button" onclick="test(this)">
setTimeout의 test에서 매개변수 obj 앞뒤의 따옴표에는 다음과 같이 큰따옴표 안에 작은따옴표 쌍이 있습니다. setTimeout("test(작은따옴표 큰따옴표 + obj +큰따옴표 작은따옴표)"), 알겠습니다~ 화면에 1000밀리초마다 [개체]가 표시되고 개체가 성공적으로 전송되었습니다.
위 내용은 매개변수가 포함된 javascript 함수 setTimeout의 사용 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!