jQuewy(http://jquewy.com)ライブラリと同じように、スクリプトを読み込むhead.js(http://headjs.com)用の関数をビルドします。しかし、私はいくつかのブラウザでかなり狂ったエラーを取得しています。所望の結果はjQueryのバージョンのロードと警告を得ることです:Firefoxのでhead.jsの関数を作成すると、さまざまなブラウザでかなりワイルドなエラーが発生する
(function() {
head.js(
jquewy_get("","jquery","ui")
);
head.ready(function(){
alert($.fn.jquery);
});
//Takes arguments and sets them so that it
//loads the urls in headjs
function jquewy_get(){
var ret = new Array();
var arg = arguments[0];
var rand = Math.floor(Math.random()*999*999);
for (var i = 1; i < arguments.length; i++){
var arg = arguments[i];
ret[i] = 'hxxp://jquewy.com/dev/headjs/?name='+arg+'&rand='+rand;
}
return ret;
}
})();
、私が手:
$はライン39
しかし、たとえ奇妙、で定義されていませんスクリプトのタグがロードされていますが(<script type="text/javascript" src="http://jquewy.com/dev/headjs/?name=ui&rand=717786"></script>
)、Firebugには次のように書かれています:
ソースのロードに失敗しました: hxxp://jquewy.com/dev/headjs/名= UI &ランド= 717786明らかに細かい解決
?。 Chromiumではスクリプトタグを読み込むことさえありません。他のブラウザを見ても気にしませんでした。なぜなら、それが2つのチャンクではうまくいかないと、他のブラウザでは動作しないからです。
現在のソースを見てみることができます:http://jquewy.com/dev/static/headjs/test/
編集:あなたはURLを覚えておく必要がないように、この点を知りたい人のため、ポイントがある - 私は別のものを移植していますがjQuewyという名前でビルドされたサービスは、名前に基づいてライブラリをロードすることで素早いプロトタイプ作成を可能にします。私のサービスは自動的に最新のソースを取得し、自動的にページに埋め込みます。 head.jsは似たようなことをする別のスクリプトです(しかし、もっと普及しています)。そのため、エンドユーザはスクリプトの読み込み方法を選択できるように、サービスを互換にしたいと考えています。
編集#2:リンクのハードコーディングで同じエラーが発生しているようです。私のサーバはリダイレクトを使って正しいスクリプトを指しています。この動作は正常ですか?ブラウザに依存しない回避策がありますか?
head.jsに配列を渡すことは、明示的に想定されていないか、そのコードでサポートされていないようです。それは私が推測するかもしれない*かもしれない。 – Pointy
@Pointy、この状況でどのように返されますか?私はhead.jsの部分を非常にきれいでシンプルに保ち、全ての複雑さをそこから遠ざけたいと思っています。ありがとう –
また、そのテストページで、Chromeは「jQueryが定義されていません」と「$が定義されていません」という2つのエラーを表示します。 – Pointy