原本并不那么关注safari,然而现在手机app运行一些js原生代码,却发现一些问题.

1. document.currentScript

在chrome上是没有问题的,然而到了safari和android浏览器(webkit内核)上就不行了, docment里面没有这个元素! 兼容性的方法是:

var currentScript = document.currentScript || (function() {
    var scripts = document.getElementsByTagName('script');
    return scripts[scripts.length - 1];
})();

2. document.getElementsByTagName

在chrome和safari上的返回值是不一样的.如果在console中运行:
typeof(document.getElementsByTagName("meta"))
在chrome中返回是object,在Safari中却是function
另外,如果有一个dom元素是:

在chrome中可以使用:
document.getElementsByTagName("meta")["viewport"]
来直接访问, 在safari中却不行.
简易解决方案, 在dom中增加id, 使用getElementById来访问, 这样两者的行为是一样的.

JS中:
document.getElementById("metavp")

标签: none 阅读量: 1956

添加新评论