3

ユーザーがページを閲覧するデバイスに応じて、正しいボタンとリンクを表示しようとしています。android が android app store ボタンを表示する場合、ios が apple store ボタンを表示する場合。

AndroidボタンからAppleボタンにスワップするように関数のデフォルトを作成しているにもかかわらず、まったくスワップできないようです。

コードは次のとおりです。

<html>
<head>
    <script type="text/javascript">

        var uagent = navigator.userAgent.toLowerCase();
        var apple = "/images/ios.jpg";
        var android = "/images/android.jpg"


        function DetectDevice() {
            var but = document.getElementById("AppButton");
            if(useragent.search("iphone") || useragent.search("ipod") || useragent.search("ipad")) {
                toswap.src = apple;
                alert("apple");
            } else if(useragent.search("android")) {
                toswap.src = android;
                alert("android");
            }
            but.src = apple;
        }
        DetectDevice();
    </script>

    <title>Device Detection</title>
</head>

<div id="butttons">
    <img src="images/android.jpg" name = "AppButton" id="AppButton"/>
</div>
4

3 に答える 3

0

2 つの問題:

まず、ボタンがロードされた後に関数を実行する必要があります。

document.getElementById("AppButton");

現時点では何も返していません。

次に、おそらく の 2 つのインスタンスをtoswap.srcに変更する必要がありますbut.src

于 2012-10-25T17:50:29.203 に答える
0

var toswap がどこを指しているのかわかりません。これを試して:

        var uagent = navigator.userAgent.toLowerCase();
        var apple = "/images/ios.jpg";
        var android = "/images/android.jpg"


        function DetectDevice() {
            var but = document.getElementById("AppButton");
            if(useragent.search("iphone") || useragent.search("ipod") || useragent.search("ipad")) {
                but.src = apple;
                alert("apple");
            } else if(useragent.search("android")) {
                but.src = android;
                alert("android");
            } else{
                but.src = apple; // this is default
            }
        }

    </script>

<div id="butttons">
    <img src="images/android.jpg" onload="DetectDevice();" name = "AppButton" id="AppButton"/>
</div>
于 2012-10-25T17:52:27.117 に答える
0

useragentも定義されていません。uagent定義したものを使用するつもりだったのかもしれませんし、変数の名前を変更するつもりだったのかもしれません。

于 2012-10-25T17:56:17.940 に答える