基本的JS问题:如何做'别的,加载javascript'

时间:2011-05-06 11:34:16

标签: javascript iphone ipad

我有一些Javascript我想要iPad / iPhone忽略,但是对于其他浏览器来说。 JS是:

<script src="scripts/jquery.anchor.js" type="text/javascript"></script>

我在此网站上发现了一些针对特定设备的代码,如下所示:

<script>
var userAgent = navigator.userAgent;

if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
   // iPad or iPhone
}
else {
   // Anything else
}
</script>

我是一个JavaScript新手,并且不知道在//任何其他评论后放置脚本的语法...任何帮助表示感谢。谢谢!

2 个答案:

答案 0 :(得分:3)

请勿测试浏览器,测试它提供的功能

如果所有浏览器都不支持某项功能,请不要测试哪些浏览器不支持它,因为如果它将来支持它会怎么样?

做这样的事情:

if (nonStandardFunction) {
    nonStandardFunction();
}

这样,任何支持它的浏览器都会执行它,而你不关心哪些是做或不做。

您也可以自己添加功能:

window.nonStandardFunction = window.nonStandardFunction || function () {      
    // your implementation
};

另一方面,如果您特别不希望i<Device>访问它,请测试用户代理。

以下是您可以做的一个示例:

var addJS = function (file) {
  var head = document.getElementsByTagName('head')[0],
      script= document.createElement("script");

  script.type = "text/javascript"; // redundant
  script.src = file;
  head.appendChild(script);
}, userAgent = navigator.userAgent,
   isNotiDevice = !(userAgent.match(/iPad/i) || userAgent.match(/iPhone/i));

if (isNotiDevice) {
    addJS('scripts/jquery.anchor.js');  
}

答案 1 :(得分:0)

不确定这是否有帮助,但您可以使用

   <script id="someID" type="text/javascript"></script>

然后

   document.getElementById('someID').src= 'script.js';

只需在特定浏览器的if语句中定制它。