Tôi đang cố gắng đóng gói một javascript mà tôi đã tạo bằng jQuery, jQuery UI, Biểu mẫu jQuery và xmlDom.Tự động tải jQuery và các tiện ích mở rộng
Tôi muốn có thể gửi cho khách hàng của mình chỉ một javascript tham chiếu đến các trình duyệt khác, bao gồm chỉ một phần nhỏ của js cho các cài đặt tùy chọn.
Tìm dưới đây một ví dụ:
<script language="javascript">
var myOptions = {
shop: 1,
style: "gold"
}
load();
</script>
<script src="http://myServer/myScript.js" type="text/javascript"></script>
Đó là gần như không thể đối với tôi để tải jQuery và plugin tự động. Tôi đọc rất nhiều ví dụ, jQuery hoạt động tốt khi tôi tải nó động, nhưng phần còn lại của các phần mở rộng không bao giờ làm việc đúng cách. trình tự sau đây là một trong những độc đáo mà nạp ít nhất một vài plugins:
Đặt một chức năng tải mà tải jQuery động:
load = function() {
load.getScript(url_base + "/js/jquery-1.3.2.js");
load.tryReady(0);
}
load.getScript = function(filename) {
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.setAttribute("src", filename)
if (typeof script!="undefined")
document.getElementsByTagName("head")[0].appendChild(script)
}
load.tryReady = function(time_elapsed) {
// Continually polls to see if jQuery is loaded.
if (typeof $ == "undefined") { // if jQuery isn't loaded yet...
if (time_elapsed <= 5000) { // and we havn't given up trying...
setTimeout("load.tryReady(" + (time_elapsed + 200) + ")", 200); // set a timer to check again in 200 ms.
} else {
alert("Timed out while loading jQuery.")
}
} else {
...
}
tải mỗi Plugin sau đó, jQueryForm, jQuery UI, xmlDom
Khi tôi kiểm tra biểu mẫu jQuery có sẵn:
if (jQuery().ajaxForm)
Khi tôi kiểm tra xmlDom nó hoạt động.
Khi tôi kiểm tra giao diện người dùng jQuery, nó không bao giờ có sẵn.
if(jQuery().ui)
Tôi không đặt thời gian chờ đợi giao diện người dùng, nó không bao giờ được tải. Dường như jQuery thực hiện các tính năng giao diện người dùng của tôi trước khi nó được tải.
Ai đó có thể gửi cho tôi liên kết để trợ giúp điều này không?
Khi bạn xem html là thẻ tập lệnh ui trong đầu? Điều gì sẽ xảy ra khi bạn kiểm tra 'if (jQuery.fn.ajaxForm)'? – czarchaic
Dòng mà bạn đã đề cập đến công trình, ý tôi là, biểu thức là đúng. Tôi cần tất cả các phần mở rộng được tải trước khi kịch bản của tôi. Tôi có thể nhận được một giải pháp cho IE nhưng nó không hoạt động trong Chrome và Firefox, đó là kiểm tra những điều kiện trong một khoảng thời gian nhất định cho đến khi nó trở thành sự thật hoặc trả về theo thời gian chờ. –