如果页面正在向 ASP.NET Page.ClientScript 注册 API 注册脚本,那么您可以使用 Page.ClientScript.IsClientScriptIncludeRegistered。另一方面,如果您正在使用这些 API,则实际上不需要调用它,因为它已经确保每个 API 都只注册一个。
http://msdn.microsoft.com/en/us/library/system.web.ui.clientscriptmanager.isclientscriptincluderegistered.aspx
如果页面只是在标记中静态地包含常规的 ole 脚本元素,并且您需要检测是否在客户端加载了脚本,则您必须获取页面上的所有脚本元素并查看它们的 .src 值。问题是某些浏览器会自动将该 url 解析为完整路径,而不仅仅是您声明的路径。因此,您可以通过各种方式来解释这一点——您可以只搜索作为您想要的脚本的字符串的结尾,或者您可以通过将其设置为动态创建的来解析要与之比较的 url script 元素(您永远不会添加到 DOM,但仍会为您解析)。
这只是我的想法,如果我弄错了,对不起:
var s = document.createElement("script");
s.src = "foo.js";
var loaded, scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src === s.src) {
loaded = true;
break;
}
}
if (loaded) {
// this script is already loaded
// assuming you dont have multiple copies in different locations
}