如何检查Twitter引导程序是否被加载?

我怎样才能检查是否有一个bootstrap.js页面上加载(一个文件bootstrap.js可能被编译成另一个大的JS文件)?

所有你需要做的只是检查一个特定于Bootstrap的方法是否可用。 我将在本例中使用模态(适用于Bootstrap 2或3):

// Will be true if bootstrap is loaded, false otherwise var bootstrap_enabled = (typeof $().modal == 'function'); 

它不是100%可靠的,因为一个模式的function可以由不同的插件提供,但是它可以完成这个工作。

你也可以检查Bootstrap 3(从3.1开始):

 // Will be true if bootstrap 3 is loaded, false if bootstrap 2 or no bootstrap var bootstrap3_enabled = (typeof $().emulateTransitionEnd == 'function'); 

我宁愿检查具体的引导插件,因为模态或工具提示是非常普遍的,所以

 if(typeof($.fn.popover) != 'undefined'){ // your stuff here } 

要么

  if (typeof $.fn.popover == 'function') { // your stuff here } 

适用于两种引导版本

if (typeof([?])=='undefined') { /*bootstrap is not loaded */}

其中[?]可以是JS文件本身内部定义的任何对象或名称空间。

javascript中不存在“包含”的概念。

https://github.com/netdna/bootstrap-cdn/issues/111#issuecomment-14467221

 <script type="text/javascript"> // <![CDATA[ (function($){ function verifyStyle(selector) {//http://stackoverflow.com/a/983817/579646 var rules; var haveRule = false; if (typeof document.styleSheets != "undefined") { //is this supported var cssSheets = document.styleSheets; outerloop: for (var i = 0; i < cssSheets.length; i++) { //using IE or FireFox/Standards Compliant rules = (typeof cssSheets[i].cssRules != "undefined") ? cssSheets[i].cssRules : cssSheets[i].rules; for (var j = 0; j < rules.length; j++) { if (rules[j].selectorText == selector) { haveRule = true; break outerloop; } }//innerloop }//outer loop }//endif return haveRule; }//eof <!-- BOOTSTRAP JS WITH LOCAL FALLBACK--> if(typeof($.fn.modal) === 'undefined') {document.write('<script src="<?=$path_js?>/bootstrap.min.js"><\/script>')} <!-- BOOTSTRAP CDN FALLBACK CSS--> $(document).ready(function() { if( verifyStyle('form-inline') ) { $("head").prepend("<link rel='stylesheet' href='<?=$path_css?>bootstrap.min.css' type='text/css' media='screen'>"); } else { //alert('bootstrap already loaded'); } }); })(jQuery); // ]]> </script> 

兼容jQuery安全模式,

如果您使用自定义CSS,CSS检查可能需要调整

AFAIK,简短的回答是

无法检测是否加载了twitter引导程序

细节

Twitter引导本质上是css和js插件的jQuery插件集。 插件名称是通用的,如$ .fn.button和一套使用的插件也可定制。 仅通过名称存在插件将无助于确定引导程序是否存在。

您可以检索<script>元素并检查其src属性,但正如您所指出的那样,您要查找的是代码本身,而不是代码可能在任何文件中的文件名。

检测JavaScript服务/类/等的最佳方法 被加载到一个页面,就是在DOM中查找你知道被给定的JS加载的东西。

例如,要检测是否加载了jQuery,可以使用null !== window.jQuery或查找加载的jQuery的版本, jQuery.prototype.jquery

我觉得这是最简单的方法。 至于CSS我不知道有一个简单的方法来做到这一点。

 <script>typeof Alert !== 'undefined' || document.write('<script src="/js/bootstrap/bootstrap.min.js">\x3C/script>')</script> 

如果你在控制台input这个,它会输出jQuery版本: console.log(jQuery().jquery);