我有一个嵌入第三方网站的javascript小部件。它需要相对于自身加载其他资源(CSS,flash等)(而不是相对于它所托管的页面)。
为此,我一直在遍历页面中的所有脚本标记,找到我的脚本标记,并从中获取src
属性。
e.g。
path = '';
$('script').each(function(i, script) {
var src = $(script).attr('src');
if ('name-of-widgets-file.js' === src.replace(/^.*[\/\\]/g, '')) {
return path = src.substring(0, src.lastIndexOf('/'));
}
});
这适用于我尝试过的所有设备,除了3G连接上的iPhone!当通过3G连接时,iPhone会返回undefined
以获取脚本标记的src
属性!
有没有人有解决这个问题的想法?可能是另一种获取当前正在执行的脚本标记的URL的方法吗?
答案 0 :(得分:0)
我找到了一个很好的解决方法。
而不是在脚本运行后查找脚本,我现在在脚本执行时计算path
。在这种情况下,iPhone在3G连接时会返回src
属性。
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];
var src = script.src;
if (!src) {
return '';
}
return src.substring(0, src.lastIndexOf('/'));