</body>
あなたが求めていたものとはまったく異なりますが、別の解決策は、本文の最後、終了タグの直前にスクリプトを含めることです。これにより、jQueryの縮小バージョンを含める必要がなくても同じ結果が得られます。
document.ready関数のポイントは、DOMの準備ができた後、つまりブラウザーがすべてのhtmlを解析し、JavaScriptから操作できるようになった後に呼び出されることです。JSコードを本文の最後に配置すると、同じ効果が得られます。これは、ブラウザーがドキュメントの解析中にJavaScriptを検出したときにJavaScriptを実行し、JSを実行すると、既に解析されたDOM要素にアクセスできるためです。
コメントでこのアイデアについて言及したときに、コードをどのように実行するかを尋ねたので、簡単な例を次に示します。
// CHANGE THE FOLLOWING:
$(document).ready(function() {
var myField = document.getElementById("someId");
alert(myField.value);
});
// TO BE
var myField = document.getElementById("someId");
alert(myField.value);
上記がインラインに含まれているか(ただし、スクリプトブロック内に含まれているか)、本文の最後にある限り、スクリプトタグに含まれている外部JSファイルに含まれているかは関係ありません。
唯一の問題は、コードが関数内に含まれていないため、グローバル変数が作成されることです。これは、将来、他の外部ライブラリを含める場合、変数を次のように定義しようとする可能性があるため、原則として避けたいものです。同じ名前。この問題を回避するには、すぐに呼び出される無名関数式でコードをラップします。
(function() {
var x = "these variables are not global",
myField = document.getElementById("someId");
alert(myField.value);
function test() {
alert("this function isn't global either");
}
test();
})();
余分な括弧に注意してください-無名関数の周りのものはそれを関数宣言ではなく関数式にし(つまり名前は必要ありません)、最後にあるものは関数をすぐに呼び出します。
現在読んでいるStackOverflowページのページソースを表示するだけで、JSを本文の最後に配置する実際の例を見ることができます。