6

タイトル通りです。

2 つのファイルを取得しました。1 つは javascript ファイルで、もう 1 つは css ファイルです。user-agent が iPad の場合、それらのファイルをロードしたいのですが、 user-agent がiPadの場合のみです。したがって、以下の 2 行は、ユーザー エージェントが iPad の場合にのみ読み込まれます。どうすればそれを達成できますか

<link rel="stylesheet" href="/c/dropkick.css" type="text/css"/>
<script src="/s/jquery.dropkick-1.0.0.js" type="text/javascript"></script>
4

2 に答える 2

11
if (navigator.userAgent.match(/iPad/i) != null){ // may need changing?
  var js = document.createElement('script');
  js.type = "text/javascript";
  js.src = "/s/jquery.dropkick-1.0.0.js";

  var css = document.createElement('link');
  css.type = "text/css";
  css.rel = "stylesheet";
  css.href = "/c/dropkick.css";

  var h = document.getElementsByTagName('head')[0];
  h.appendChild(js);
  h.appendChild(css);
}

またはUser-Agent、iPad のヘッダーにあるものは何でも。

参考文献:

于 2012-12-10T14:17:08.313 に答える
2

を使用しておよび要素document.createElementを作成し、それらをドキュメントに追加できます (たとえば、追加または類似)。linkscriptdocument.getElementsByTagName('head')[0]

SO に関するこの回答"ipad"は、フィールド内の文字列を探すだけで iPad を検出できることを示唆していますnavigator.userAgent。もちろん、ユーザー エージェント フィールドは偽装できます。

たとえば、次のようになります。

<script>
(function() {
    var elm, head;

    if (navigator.userAgent.indexOf("ipad") !== -1) {
        head = document.getElementsByTagName('head')[0] || document.body || document.documentElement;

        elm = document.createElement('link');
        elm.rel = "stylesheet";
        elm.href = "/c/dropkick.css";
        head.appendChild(elm);

        elm = document.createElement('script');
        elm.src = "/s/jquery.dropkick-1.0.0.js";
        head.appendChild(elm);
    }
})();
</script>

...しかし、それはすぐに使えるものであり、テストされていません。

link(型をまたはのいずれかに置く理由はないことに注意してくださいscript。 の場合link、型は応答の content-type から取得されます。 の場合script、デフォルトは JavaScript です。)

于 2012-12-10T14:16:25.427 に答える