浏览器检测仅在移动设备上显示,而在桌面上显示其

时间:2012-04-24 16:54:50

标签: jquery html5 browser-detection

我尝试了很多不同的方法来实现这一目标。我所拥有的是一个网站,我在页面顶部有一个流式广播播放器。通常我只有默认的给定脚本

<center> 
    <!--Wavestreaming.com SHOUTcast Flash Player-->
    <script type="text/javascript" src="http://player.wavestreamer.com/cgi-bin/swf.js?id=A7GCMO5PSJJE1EC9"></script>.        
    <script type="text/javascript" src="http://www.syracusehiphop.com/wp-content/uploads/2012/04/scriptfornoflashtext.js.txt"></script>                    
</center>

当然,它适用于所有桌面浏览器,但是当有人来自IPAD或平板电脑时,我希望他们也可以听。

所以我使用的是简单的HTML5代码,但当然它只适用于移动浏览器,所以现在台式机浏览器不会播放它,除非我提供多种MIME类型,但我无法提供。

所以我尝试了多个“ELSE IF”代码并且无法得到它,我得到的是在移动设备或平板电脑浏览器上显示HTML5,然后默认脚本和HTML5在桌面上相互堆叠

这是我最近的尝试

<script type="text/javascript">
$(document).ready(function()
{
    if ( $.browser.msie )
    {
        <center> <!--Wavestreaming.com SHOUTcast Flash Player-->
            <script type="text/javascript" src="http://player.wavestreamer.com/cgi-bin/swf.js?id=A7GCMO5PSJJE1EC9"></script>.
            <script type="text/javascript" src="http://www.syracusehiphop.com/wp-content/uploads/2012/04/scriptfornoflashtext.js.txt"></script>
        </center> 
} 
else if ( $.browser.mozilla ) 
{
    <center>
        <!--Wavestreaming.com SHOUTcast Flash Player-->
        <script type="text/javascript" src="http://player.wavestreamer.com/cgi-bin/swf.js?id=A7GCMO5PSJJE1EC9"></script>.
        <script type="text/javascript" src="http://www.syracusehiphop.com/wp-content/uploads/2012/04/scriptfornoflashtext.js.txt"></script>
    </center>
} 
else if ( $.browser.webkit || $.browser.safari ) 
{
    <center>
        <!--Wavestreaming.com SHOUTcast Flash Player-->
        <script type="text/javascript" src="http://player.wavestreamer.com/cgi-bin/swf.js?id=A7GCMO5PSJJE1EC9"></script>.
        <script type="text/javascript" src="http://www.syracusehiphop.com/wp-content/uploads/2012/04/scriptfornoflashtext.js.txt"></script>
    </center>
} 
else if ( $.browser.opera ) 
{
    <center>
        <!--Wavestreaming.com SHOUTcast Flash Player-->
        <script type="text/javascript" src="http://player.wavestreamer.com/cgi-bin/swf.js?id=A7GCMO5PSJJE1EC9"></script>.
        <script type="text/javascript" src="http://www.syracusehiphop.com/wp-content/uploads/2012/04/scriptfornoflashtext.js.txt"></script>
    </center>
} 
else if ( $mobile_browser ) 
{
    <audio controls="controls">
        <source src="http://delicious.wavestreamer.com:3057/listen.pls" type="audio/mpeg" />
    </audio>
}) 
</script> 

1 个答案:

答案 0 :(得分:2)

您不能将HTML标记放在javascript中。

您最好的选择是首先检查移动浏览器,然后在这种情况下应用移动代码。如果您只是为所有桌面浏览器使用相同的代码,则无需检查每个浏览器。

尝试使用此代替html标记:

var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
$("#someElement").append( script );

(来自Can't append <script> element

我建议阅读jQuery和javascript如何工作,以及它们如何与DOM交互。 http://www.w3schools.com/js/js_intro.asp是一个很好的起点。