支持document.currentScript的浏览器,用document.currentScript
和document.currentScript.src
ie的低版本遍历script标签判断readyState的值是否为"interactive",
上面两种是可以完美获取的
两者都不支持的,通过stack获取路径,但是无法完美获取元素,通过遍历script标签判断src的值,
存在的问题是,多个相同路径的script同时加载,不能正确判断,不过这种情况很少见。
如果stack也不支持,只能获取最后一个元素了,
一些测试结果:
firefox的e.fileName和safari的e.sourceURL,获取到的地址是报错的地址,只能直接用,比如a.js调用b.js里的getCurrentPath函数,获取到的地址是b.js。所以不行用。
IE的onerror事件获取到的地址,ie8是js地址,ie7和ie6都是html的地址,所以用onerror不行