2009-09-21 64 views
3

我需要鉤住所有的鏈接,圖像,CSS和JS調用我的網站內的網址,並執行一些操作時發生事件。如何攔截使用javascript的網站http請求?

任何人都知道如何處理所有這些事件?

+2

你的問題並不清楚,什麼類型的「你想要執行的操作」以及什麼時候你想讓它啓動,在對象被加載到DOM之後或者當請求被做出時...... _你可能會試圖在正規網絡開發的約定之外做點什麼。也許問自己,「爲什麼我需要這樣做」首先,你可能會發現它完全沒有必要。 – 2009-09-21 20:21:14

+0

你不能攔截網站http通過javascript,因爲javascript文件本身是一個http請求,你需要一個web服務器和某種服務器端技術來做到這一點 – Ayyash 2009-09-22 04:20:51

+0

嗨, 我需要處理HTTP請求,因爲我想要觀察和執行某些對象執行該事件時的某些操作。即,當img.src從服務器加載一些內容時,我需要計算它花費的時間。 Firebug和Yslow做到了。但是,我不知道如何。 []的, 和過去 – apast 2009-09-22 13:11:05

回答

2

的jQuery:

$("link, script, style, a, img").each(function(){ 
    $(this).load(function(){ 
     // do stuff when each of these elements is loaded 
    }); 
}); 

不能完全確定,如果這是你想要什麼,你的問題是不是非常清楚,但是那是何等你可以爲每個元素類型的東西加載事件。

+7

'.each'在這裏是多餘的。你可以使用'$(「link,script,style,a,img」)。只是一個小費。 – 2009-09-21 20:22:26

+0

是的!我們需要該解決方案。這是我不能處理的請求類型! 謝謝, 和過去 – apast 2009-09-22 12:49:31

+0

但是,我需要一些更完整的工件來實現所有的HTTP請求。即當jquery執行$ .get('remoteFile.html',...)時。我如何處理這個請求? []的, And Past – apast 2009-09-22 13:14:32

0

事件處理程序? <body onload="somefunction"> <img src="blah.jpg" onLoad="somejavascriptfunction()" onclick="someotherfunction">等。

可以用大多數元素來完成。

0

如果你需要用相同的函數捕捉所有的東西,你可以使用jQuery。像這樣的東西會附加功能,所有鏈接:

$('a').click(somefunction); 
+2

你不需要jQuery來重新使用這樣的功能。 – 2009-09-21 20:20:44

+1

不,您可以不用,但選擇器可以很容易地確保您獲得想要附加功能的所有位置,同時加載和點擊功能可以幫助您順利處理跨瀏覽器問題。 – acrosman 2009-09-22 13:00:27