Javascript 根据用户代理加载样式表

Javascript 根据用户代理加载样式表,javascript,jquery,Javascript,Jquery,我必须加载不同的样式表,这取决于用户代理是iPad还是其他。我知道,一般来说,检测浏览器并不是一个非常好的主意,在将来的某个时候可能会削弱我们的可维护性。这不是我的决定 所以这里我们有一些JavaScript来检测用户代理。它不起作用了。我可能漏掉了什么。我得到的错误是一个红鲱鱼(对象引用),但只有在我执行JavaScript时才会出现 $(document).ready(function () { alert('ready fired'); if (na

我必须加载不同的样式表,这取决于用户代理是iPad还是其他。我知道,一般来说,检测浏览器并不是一个非常好的主意,在将来的某个时候可能会削弱我们的可维护性。这不是我的决定

所以这里我们有一些JavaScript来检测用户代理。它不起作用了。我可能漏掉了什么。我得到的错误是一个红鲱鱼(对象引用),但只有在我执行JavaScript时才会出现

    $(document).ready(function () {
        alert('ready fired');
        if (navigator.userAgent.indexOf("iPad") != -1) {
            //alert('bleep bloop blop...iPad detected');
            var stringToWrite = '<script src=\'\<\%\= ResolveUrl("~/Scripts/iscroll.js") \%\>\' type="text/javascript"><\/script>';
            stringToWrite += '<link href=\'\<\%\= ResolveUrl("~/Stylesheets/scrollbar.css") \%\>\' rel="stylesheet" type="text/css" \/>';
            stringToWrite += '<link href=\'\<\%\= ResolveUrl("~/Stylesheets/iPadCommon.css") \%\>\' rel="stylesheet" type="text/css" \/>';
            alert(stringToWrite);
            document.write(stringToWrite);
        }
        //else
        //alert('bleep bloop blop...who cares browser');
    });
$(文档).ready(函数(){
警报(“准备发射”);
if(navigator.userAgent.indexOf(“iPad”)!=-1){
//警报('bleep-bloop-blop…检测到iPad');
var stringToWrite='';
stringToWrite+='';
stringToWrite+='';
警报(stringToWrite);
文件编写(stringToWrite);
}
//否则
//警报('bleep-bloop-blop…谁在乎浏览器');
});

在互联网上随机发现:

//returns true if user is using one of the following mobile browsers
var ismobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i)

您可能应该考虑在服务器端检测代理,否则对于JavaScript禁用的浏览器将不起作用。p> 如果可能,您应该使用
@media-handled
来使用特定于手持设备的样式规则

如果这也是理所当然的,也就是说,如果iPad与iPhone与Android需要不同的CSS,那么您应该进行服务器端检测,并将CSS类添加到
和/或
标记中,如

<html class="android">



昆廷的评论是正确的——尝试编写服务器端元标记
将不起作用,因为服务器没有运行javascript编写的内容。服务器已完成处理。

您的userAgent是否存在问题?发出
警报('bleep-bloop-blop…检测到iPad')被调用(如果没有被注释掉)?就我个人而言,我想用服务器端语言进行这种检查。@pepperedlemons-是的,它被调用了。检测很好。一定是我的绳子逃走了。希望有一个javascript webapp online的自动转义这个蹩脚字符串。看起来你正在试图转义服务器端使用的东西-
,是的,它会回来咬你。只要使用媒体查询,它就更理智了。+1我开始明白为什么我应该这样做,而不管别人告诉我什么@昆汀说得很有道理。
<body class="iOS">