-1

好的,这是我正在使用的脚本的完整源代码:

var isOpera = !!window.opera || navigator.userAgent.indexOf('Opera') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined';   // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome;                          // Chrome 1+
var isIE = /*@cc_on!@*/false;                            // At least IE6

if (isFirefox) {

    // do FireFox stuff here

} else if (isChrome) {

    // do Chrome stuff here

} else if (isSafari) {

    // do Safari stuff here

} else if (isOpera) {

    // do Opera stuff here

} else if (isIE) {

    // do IE stuff here

} else {

    // other browser

}

然后在每个 if/else 语句下,我需要以某种方式“运行”:

<script type="text/javascript" src="./include/js/newupdates.js"></script>
    <div id="auto"></div>

或类似的东西取决于浏览器。我看着 Modernizer,它把我弄糊涂了。上面的示例有效并成功检测到我需要它的所有浏览器,我只是不知道如何让脚本在 if/else 语句中执行某些 HTML/JS 代码......

4

1 回答 1

-1

既然已经明确了实际问题,我将提交一个完全不同的答案。

首先,浏览器检测通常是解决浏览器兼容性问题的糟糕方法。最好使用特征检测来检测特定特征是否存在并且是否有效。当用户代理被欺骗时,功能检测甚至是可靠的,并且当浏览器实现新功能时,它比浏览器代理检测更向前兼容。

如果您要坚持使用当前方法,那么您可以将脚本(在变量定义之后开始)包装在一个函数中,将该函数包含在您预加载的 javascript 中,然后在需要时调用该函数。

这是一种方法:

// include this JS with your other JS or in your <head> section of your HTML document

var isOpera = !!window.opera || navigator.userAgent.indexOf('Opera') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined';   // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome;                          // Chrome 1+
var isIE = /*@cc_on!@*/false;                            // At least IE6

function doStuffBasedOnBrowserType() {
    if (isFirefox) {

        // do FireFox stuff here

    } else if (isChrome) {

        // do Chrome stuff here

    } else if (isSafari) {

        // do Safari stuff here

    } else if (isOpera) {

        // do Opera stuff here

    } else if (isIE) {

        // do IE stuff here

    } else {

        // other browser

    }
}

然后,在您的其他代码中:

<script>
doStuffBasedOnBrowserType(); 
</script>
<div id="auto"></div>
于 2013-09-14T16:25:54.770 回答