Từ here:
// Add jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);
// Check if jQuery's loaded
function GM_wait()
{
if(typeof unsafeWindow.jQuery == 'undefined')
{
window.setTimeout(GM_wait,100);
}
else
{
$ = unsafeWindow.jQuery;
letsJQuery();
}
}
GM_wait();
// All your GM code must be inside this function
function letsJQuery()
{
// Do your jQuery stuff in here
}
này sẽ đợi cho đến jQuery được nạp để sử dụng nó, nhưng bạn có thể sử dụng các khái niệm tương tự, thiết lập các biến trong các kịch bản khác của bạn (hoặc kiểm tra họ nếu họ không phải kịch bản của bạn) để chờ cho đến khi chúng được tải để sử dụng chúng.
Ví dụ, trên trang web của tôi, tôi sử dụng này cho đồng bộ JS tải và chờ đợi cho đến khi họ đã hoàn tất trước khi làm bất cứ điều gì với họ sử dụng jQuery:
<script type="text/javascript" language="JavaScript">
function js(url){
s = document.createElement("script");
s.type = "text/javascript";
s.src = url;
document.getElementsByTagName("head")[0].appendChild(s);
}
js("/js/jquery-ui.js");
js("/js/jrails.js");
js("/js/jquery.jgrowl-min.js");
js("/js/jquery.scrollTo-min.js");
js("/js/jquery.corner-min.js");
js("/js/jquery.cookie-min.js");
js("/js/application-min.js");
function JS_wait() {
if (typeof $.cookie == 'undefined' || // set in jquery.cookie-min.js
typeof getLastViewedAnchor == 'undefined' || // set in application-min.js
typeof getLastViewedArchive == 'undefined' || // set in application-min.js
typeof getAntiSpamValue == 'undefined') // set in application-min.js
{
window.setTimeout(JS_wait, 100);
}
else
{
JS_ready();
}
}
function JS_ready() {
// snipped
};
$(document).ready(JS_wait);
</script>
Nguồn
2009-06-18 11:37:52
Tôi không chắc chắn những gì bạn có nghĩa là bằng cách này. Bạn có đề xuất tôi nhập tất cả các tập lệnh thông qua một tập lệnh jquery và chỉ cần đặt kịch bản của tôi cuối cùng? Nếu như vậy sẽ như thế nào (Tôi là một nhà thiết kế thương mại, vì vậy đừng dùng những từ lớn :)) – chrism
$ (tài liệu).ready (function() { callLoadFunction1(); callLoadFunction2(); calljQueryLoadFunction(); }); –
các tập lệnh khác là tất cả các tệp bên ngoài vì vậy tôi không chắc chắn điều này sẽ hoạt động đúng không? – chrism