2016-08-26 12 views
6

Tôi đang viết một số tệp javascript sẽ không được sử dụng với tài liệu html. Ví dụ, viết một máy tính trong js nơi tôi sẽ có các tập tin .js khác nhau nói một để bổ sung, trừ, nhân, chia, vv ..Sử dụng tệp javascript trong một tệp js khác

Tôi muốn có mỗi phép toán trong một self .js sau đó có tệp .js khác sẽ #bao gồm các tệp nhỏ hơn khác và có thể gọi các hàm từ chúng?

Điều đó có khả thi không?

Ví dụ toán học chỉ là một cách đơn giản để cố gắng thể hiện ý tôi, chương trình thực sự phức tạp hơn một chút và mục đích chính của việc chia nhỏ mã là vì tôi dễ dàng giải thích hơn các đoạn mã chuyên biệt nhỏ.

Tôi không có bất kỳ tài liệu hoặc mái vòm nào để làm việc, chỉ các tệp .js thuần túy với các thuật toán bên trong.

+1

Bạn có thể sử dụng webpack với 'require ('otherfile.js');' – jcubic

+0

nó thực sự có vẻ như js là không phù hợp với tôi dự án hiện giờ. Tôi đã phải thả javascript và chuyển sang ngôn ngữ lập trình khác. Tôi mặc dù qua thời gian can thiệp từ câu hỏi ban đầu mà js đã hiện đại hóa một chút. Ai muốn một tập tin nguyên khối, đặc biệt là với js async mã thực thi, tên va chạm, vv ... chắc chắn tôi có thể quấn lên chức năng và làm cho họ anon nhưng wow ..... – user1610950

+0

có, sử dụng yêu cầu –

Trả lời

2

Sử dụng javascript:

var script = document.createElement('script'); 
script.src = '/js/script'; 
document.head.appendChild(script); 

Sử dụng jQuery:

//you need to change your path 
$.getScript('/js/script.js', function() 
{ 
    // script is imported 

}); 
+3

[Tôi gọi đạo văn!] (https://stackoverflow.com/a/4634669/2288578) – Clonkex

1

Đây là một phiên bản đồng bộ:

function myRequire(url) { 
    var ajax = new XMLHttpRequest(); 
    ajax.open('GET', url, false); // <-- the 'false' makes it synchronous 
    ajax.onreadystatechange = function() { 
     var script = ajax.response || ajax.responseText; 
     if (ajax.readyState === 4) { 
      switch(ajax.status) { 
       case 200: 
        eval.apply(window, [script]); 
        console.log("script loaded: ", url); 
        break; 
       default: 
        console.log("ERROR: script not loaded: ", url); 
      } 
     } 
    }; 
    ajax.send(null); 
} 

Lưu ý rằng để có được điều này cross-domain làm việc, máy chủ sẽ cần phải thiết lập tiêu đề cho phép có nguồn gốc trong phản ứng của nó.

Các vấn đề liên quan