Javascript 如何检查Twitter引导是否已加载?

Javascript 如何检查Twitter引导是否已加载?,javascript,twitter-bootstrap,frontend,Javascript,Twitter Bootstrap,Frontend,如何检查页面上是否加载了bootstrap.js文件(该bootstrap.js文件本身可能被编译成另一个大的js文件)?您可以检索元素并检查它们的src属性,但正如您所指出的,您要查找的是代码本身,而不是文件名,因为代码可能位于任何文件中 检测页面中是否加载了JavaScript服务/类/等的最佳方法是在DOM中查找给定JS加载的内容 例如,要检测是否加载了jQuery,可以执行null!==window.jQuery或查找加载的jQuery的版本,jQuery.prototype.jQuer

如何检查页面上是否加载了
bootstrap.js
文件(该
bootstrap.js
文件本身可能被编译成另一个大的js文件)?

您可以检索
元素并检查它们的src属性,但正如您所指出的,您要查找的是代码本身,而不是文件名,因为代码可能位于任何文件中

检测页面中是否加载了JavaScript服务/类/等的最佳方法是在DOM中查找给定JS加载的内容

例如,要检测是否加载了jQuery,可以执行
null!==window.jQuery
或查找加载的jQuery的版本,
jQuery.prototype.jQuery
if(typeof([?])===“undefined”){/*引导未加载*/}

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

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

好的,简短的回答是

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

细节
Twitter引导程序本质上是css和jquery的一组js插件。插件名称是通用的,如$.fn.button,要使用的插件集也是可自定义的。仅按名称显示插件无助于确定是否存在引导程序。

您只需检查是否存在特定于引导程序的方法即可。在本例中,我将使用modal(适用于引导程序2-4):

它显然不是100%可靠的,因为模态函数可以由不同的插件提供,但它仍然可以完成这项工作

您还可以更具体地检查引导3-4(从3.1+开始工作):

请注意,所有这些检查都需要这样做。

请参阅


// 
if(typeof($.fn.modal)=='undefined'){document.write('bootstrap.min.css'type='text/css'media='screen'>);
}
其他的
{
//警报(“引导程序已加载”);
}
});
})(jQuery);
// ]]>
与jQuery安全模式兼容


如果您使用自定义css,css检查可能需要调整,我宁愿检查特定的引导插件,因为模式或工具提示非常常见,所以

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


在两个引导版本中都可以工作

如果在控制台中键入此命令,它将输出jQuery版本:
console.log(jQuery().jQuery);

我发现这是最简单的方法。至于css,我不确定有没有简单的方法

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

添加引导链接并注意h1标记中的更改。

例如
if(typeof($.fn.modal)==“undefined”)
谢谢!从cdnjs加载带有本地后备功能的引导非常方便。除了使用
。modal
…这个例子中到处都是误报。是的,误报是可能的,这是真的。不幸的是,大多数可能的检查在引导中都有相当一般的名称,所以很难避免这个问题问题,但可能一个更模糊的问题是scrollspy.noConflict。因此,检查scrollspy和noConflict是否都存在可能不太容易出现误报。您还可以将几个不同的检查组合在一起,使其更加可靠。大多数情况下都可以工作,但对包含同名jQuery插件的包感到厌倦。@aron Ied使用此var引导程序_enabled=(typeof$().modal=='function');如何在没有jquery的情况下使用它?我的jquery在检查引导时没有加载,因此它给了我$undefined error。我认为这是最好的答案,符合当前JavaScript关注功能支持而不是寻找整个框架的想法。
<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>
if(typeof($.fn.popover) != 'undefined'){
 // your stuff here
}
 if (typeof $.fn.popover == 'function') { 
   // your stuff here
  }
<script>typeof Alert !== 'undefined' || document.write('<script src="/js/bootstrap/bootstrap.min.js">\x3C/script>')</script>