0

サードパーティの Web サイトに埋め込まれた 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実行中に作業を行うようになりました。この場合、iPhone はsrc3G 接続時に属性を返します。

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 に答える