2012-03-14 38 views
14

Có triển khai hoặc mô phỏng DOM hoàn toàn là javascript không?Triển khai DOM trong javascript thuần túy?

  • Có env.js, nhưng yêu cầu Rhino.
  • Có jsdom, nhưng điều đó đòi hỏi Node.

Có giải pháp nào hoạt động ở hầu hết mọi trình thông dịch javascript, chẳng hạn như v8, mà không bị ràng buộc với bất kỳ trình thông dịch hoặc công cụ cụ thể nào không? Đó là, có bất kỳ thực hiện DOM trong JS mà không có bất kỳ thiết lập hoặc shims có thể được thả vào một thông dịch viên javascript và chỉ cần chạy?

+0

Bạn có thể giải thích lý do bạn cần điều này không? – JPuge

+0

Đó là để kiểm tra mã javascript. – Mario

+1

Tôi đang tìm một cái gì đó tương tự, đây là lý do cho tôi: Tôi muốn chạy nó trong động cơ v8 js (kiểm soát bởi golang bindings để v8), nhưng không nhất thiết phải trong nút. –

Trả lời

5

Ngoài các những người bạn đã liệt kê, tôi đã nghe những điều tốt đẹp về dom.js. Nó đòi hỏi các tính năng ES6 giới hạn như const, WeakMapProxy, vì vậy nó sẽ hoạt động trong V8 và SpiderMonkey (Rhino) nhưng không hoạt động với JavaScriptCore, Chakra hoặc các tính năng khác.

1

Thật khó để đoán chính xác những gì bạn đang cố gắng để làm, ở đây, nhưng tôi sẽ mất một đâm vào nó, chỉ để tiếp tục câu chuyện:

  • Nếu bạn đang cố gắng để thao tác một DOM từ trong trình duyệt, bạn không thể chỉ sử dụng Jquery?
  • Nếu bạn đang cố gắng để có được một "trình duyệt không đầu", tôi muốn kiểm tra PhantomJS.

Tôi đoán thật khó để tưởng tượng làm thế nào bạn thậm chí muốn chạy mã Javascript mà không có một trình duyệt, hoặc tê giác, hoặc Node, hoặc PhantomJS, hoặc một số môi trường thông dịch khác JS ...

+5

Nếu bạn đang cố gắng điều khiển DOM từ bên trong trình duyệt, có thể ' bạn chỉ cần sử dụng [API DOM] (https://developer.mozilla.org/en/DOM)? – rlemon

+0

Tôi nhận ra điều này không giống nhau ... tuy nhiên đối với những gì anh ta yêu cầu dạy mọi người * cách sử dụng * api DOM và không trừu tượng một lớp trên đầu nó sẽ là tốt nhất. – rlemon

+0

Trên thực tế, nó là để trừu tượng ra DOM ra khỏi trình duyệt và bẫy của họ để kiểm tra mã. – Mario

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