0

我有一个嵌入在第三方网站上的 javascript 小部件。它需要加载相对于自身(而不是相对于它所在的页面)的其他资源(CSS、flash 等)。

为此,我一直在遍历页面中的所有脚本标签,找到我的脚本标签,并src从中获取属性。

例如

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 的方法?

4

1 回答 1

0

我找到了一个很好的解决方法。

我现在不是在脚本运行后寻找脚本,而是path在脚本执行时进行计算。在这种情况下,iPhonesrc在 3G 连接时返回该属性。

var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];
var src = script.src;
if (!src) {
  return '';
}
return src.substring(0, src.lastIndexOf('/'));
于 2011-02-18T15:41:39.997 回答