我有以下問題:在客戶的主頁上,導航欄是由javascript加載的,但我需要更改一些URL。如果我剛剛在$(document).ready()上啓動腳本,它將在客戶腳本之前運行,並且不起作用。我只能使用setTimeout函數等待另一個腳本準備就緒,但它不是很好,也不安全。我無法更改網站上的任何內容,只添加一個JavaScript - 是否有一種方法可以在另一個之後進行計時?time javascript
回答
您可以使用重複的setTimeout,以檢查菜單是否可訪問。
function check_menu(){
if(document.getElementById('my_menu')==null){
setTimeout('check_menu()',500);
} else {
//do some stuff
}
}
-1應該使用setInterval。 – iambriansreed
@iambriansreed爲什麼'setInterval' vs'setTimeout'保證downvote?由於對'setTimeout'有更多的控制權,我實際上會在'setInterval'上建議'setTimeout'。我建議的唯一改變是使用'check_menu'而不是''check_menu()「' –
setTimeout在這裏使用,因爲我們只想調用該方法一次,當我們想要停止時更容易。 – djleop
如果您有喜歡的ID或類菜單信息,使用元素的onLoad()
jQuery的方法。例如,如果代碼異步加載,並且將onload添加到內容完成後它應該觸發的最後一個元素之一。
$.post('AsyncCodeLoad.php', function(data) {
$('#lastElementToLoad').onLoad(RunMyFunction);
});
或者,如果你有沒有機會插入你的代碼進入異步加載只需添加到</body>
的底部:
$('#lastElementToLoad').onLoad(RunMyFunction);
只是一個想法。
是的,將腳本添加到<body />
標記的底部,以確保它在所有其他腳本運行前都不會運行。這隻會在您的客戶同步加載導航鏈接時起作用。
如果導航是異步加載的,請使用JS的setInterval
重複檢查導航的內容以獲得鏈接。當您確定已添加鏈接時,請取消您的間隔檢查並調用腳本的邏輯入口點。
乾杯
小提琴:http://jsfiddle.net/iambriansreed/xSzjA/
的JavaScript
var
menu_fix = function(){
var menu = $('#menu');
if(menu.length == 0) return;
clearInterval(menu_fix_int);
$('a', menu).text('Google Search').attr('href','http://google.com');
},
menu_fix_int = setInterval(menu_fix, 100);
HTML
<div id="menu"><a href="http://bing.com">Bing Search</a></div>
- 1. Joda-Time for Javascript?
- 2. Javascript time manupulation
- 3. Javascript time track
- 4. Javascript Epoch Time In Days
- 5. Javascript Circle slider degrees to time
- 6. Javascript warp time with warp js
- 7. Javascript if if condition run time failure
- 8. JavaScript Just In Time編譯
- 9. JavaScript等效於vbscript Now and Time()
- 10. Javascript正則表達式:validate time
- 11. Javascript time if語句8.30上午
- 12. Ruby on Rails Time In/Time Out Records
- 13. 爲什麼cc「real time」>>「real time」?
- 14. TextBox for Time
- 15. $ date_of_expiry = time()60;
- 16. CustomValidator time c#.net
- 17. Git Time Travel
- 18. BackgroundWorker - Report Time
- 19. Time Spinner OverwriteMode JAVA
- 20. NSTimer Lap Time iPhone
- 21. Time Machine vs Subversion
- 22. structuremap objectfactory life time
- 23. jQuery Time Ago
- 24. UIDatePicker,time和1970
- 25. Rails DateTime.now without Time
- 26. time()函數
- 27. Boost posix time
- 28. MVC FindView Time
- 29. Sort 24 Hour Time
- 30. ORACLE:CHECK TIME CONSTRAINT
什麼是客戶的腳本? –
您可以使用jQuery使用延遲完成的調用。 –
@MarcusRecck他將完成的方法應用於什麼延遲對象? –