Если страница регистрирует сценарии с помощью API-интерфейсов регистра ASP.NET Page.ClientScript, вы можете использовать Page.ClientScript.IsClientScriptIncludeRegistered. С другой стороны, если вы используете эти 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
}