私のユーザー スクリプトでは、このコードを使用して、jQuery と残りのコードを挿入して実行します。
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function readyJQuery() {
jQuery.noConflict();
jQuery(document).ready(function() {
//my rest code goes here
})
}
addJQuery(readyJQuery)
これは完全に機能します。しかし、2 つのスクリプトがある場合、両方とも jQuery 部分を挿入します。誰がどのスクリプトを使用したいのか、または両方のスクリプトを使用したいのかわからないため、スクリプトは別々にする必要があります。
2 番目のスクリプトが jQuery を挿入するのを防ぎ、最初のスクリプトのスクリプトを使用することはできますか?
2 番目のスクリプトが次のように直接始まる場合:
function addJQuery(callback) {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}
function readyJQuery() {
jQuery.noConflict();
jQuery(document).ready(function() {
//my rest code goes here
})
}
addJQuery(readyJQuery)
コンソールにエラー メッセージが表示されます: jQuery is undefined
。別のスクリプトがすでに jQuery を挿入しているかどうかをテストし、準備が整うまで待つにはどうすればよいですか?