通过3G获取iPhone上的Javascript中脚本标记的源URL

时间:2011-02-18 15:04:44

标签: javascript iphone 3g

我有一个嵌入第三方网站的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的方法吗?

1 个答案:

答案 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('/'));