我可以指示浏览器运行自定义javascript函数之前,甚至开始一个web请求

Can I instruct browser to run a custom javascript function before even starting a web request?

本文关键字:开始 请求 web 一个 运行 浏览器 指示 自定义 javascript 函数 我可以      更新时间:2023-09-26

我想要这样的东西:第一次加载我的网页,我在浏览器的本地存储中存储一个函数fn。从那时起,每当要向我的域名发出请求时,fn甚至在发出该请求之前就会执行(当然是在确定要向我的域名发出请求之后)

有可能吗?

我认为你正在寻找的是所谓的应用程序缓存。应用程序缓存允许你指定一个缓存清单来告诉受支持的浏览器,你网站上的某些文件应该被缓存,并在用户第二次访问你的网站时自动从缓存中加载。浏览器将检查网站加载后的更新,所以即使你更新清单文件(这是唯一的方法来告诉浏览器一个缓存文件的变化),浏览器将下载更新的文件在后台。然后,您可以选择自动重新加载页面,或者只是让用户使用旧的缓存,直到下次加载缓存页面。

http://www.html5rocks.com/en/tutorials/appcache/beginner/

这是加载html/images/js或在单个请求发送到您的站点之前执行js的唯一方法。这也意味着,如果你的网站/应用程序设计正确,即使用户完全离线,它也可以使用。

我希望不会,因为这些功能将相当于地雷。假设我知道一家银行即将合并,所以我买了一些合并后的公司可能拥有的域名,并做了一些事情来吸引流量,这将这些功能中的一个存储在浏览器缓存中。然后合并后的银行就来找我抢注域名,我没怎么反抗就交出了域名。现在,即使我不拥有该域名,我所嵌入的脚本也可以对向银行发出的任何请求运行,因此,只有当用户实际导航到银行网站时,它才能为我的钓鱼网站启动一个弹出式窗口。

您不能使用Javascript的任何半永久方式(本地存储/cookie)来存储函数。您可以存储一个函数名,然后使用它来决定执行哪个函数。如果你在域名的每个页面上都包含javascript文件,那么这是可能的。

这可以通过设置cookie或在本地存储中存储值来轻松完成。