2009-09-21 65 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