2010-08-19 81 views
8

Có ai biết nếu có một công cụ xung quanh có thể chuyển đổi html sang javascript.chuyển đổi html sang javascript

Ví dụ:

<div> 
</div> 

sẽ chuyển sang

aDiv = document.createElement('div'); 
document.appendChild(aDiv); 

vv

Tôi đang làm một vài mẫu html cho các thành phần giao diện người dùng và đang sử dụng MooShell cho prototyping. Nó sẽ là tuyệt vời để có thể tự động tạo ra javascript sẽ xây dựng html của thành phần.

Cảm ơn

+1

Câu hỏi thú vị. Tôi nghĩ jQuery phải có một công cụ phân tích cú pháp được tích hợp sẵn, vì nó có thể chấp nhận các lệnh như '$ ("

")' để xây dựng các đối tượng DOM. Có thể có thêm thông tin ở đó. –

+1

Ý tưởng thú vị, nhưng lưu ý rằng các giao dịch DOM lặp lại, đặc biệt đối với các hệ thống phân cấp lớn, có thể tốn kém. – Konrad

+0

Và nếu tài liệu không xác thực? Dù sao nó có thể được "dễ dàng" đạt được với bruteforce regexping :) –

Trả lời

0

Nếu không có công cụ như vậy (mà tôi đánh giá cao nghĩ là trường hợp), tôi sẽ giải quyết vấn đề này cùng cách tốt cũ: xây dựng phân tích cú pháp của riêng tôi.

-2

Tôi không chắc chắn về tình huống của bạn, nhưng nếu bạn có các thành phần trong HTML, chúng phải có sự kiện, ID và ràng buộc ... Vì vậy, tôi không nghĩ rằng có một kịch bản thiên tài giống như con người có thể tạo mã này . Thêm vào đó, vấn đề của bạn rất cụ thể. Nó có thể là một nơi nào đó trong một số tập đoàn CNTT, nhưng nó không phải cái gì mà các nhà phát triển web sử dụng hàng ngày như jQuery.

0

Tôi thấy những người khác đã cung cấp cho bạn nhiều mẹo về cách thực hiện điều này, nhưng hai xu của tôi có một điều cần ghi nhớ.

Nếu bạn chèn/xóa/sửa đổi các phần tử đến/từ DOM bằng Javascript phía máy khách, bạn sẽ thấy rằng với một khung công tác như jQuery, bạn sẽ không thể gọi và thao tác các phần tử DOM mà bạn đã thêm vào một cách nhanh chóng.

Cách tốt nhất là làm thế nào để tìm kiếm bằng cách sử dụng plugin jQuery Live.

0

Khung PrototypeJS có một phương pháp chèn() có khả năng phân tích mã html, vì vậy bạn có thể làm điều gì đó như:

$$('body')[0].insert(stringWithYourHTMLCode); 

Hoặc bạn xác định một container cho nội dung của bạn:

$('containerId').insert(stringWithYourHTMLCode); 
+0

Đó không phải là những gì anh ta đang hỏi. – Chris

2

Tôi khuyên bạn nên xem qua số pure javascript HTML parser của John Resig. Nó bao gồm trình phân tích cú pháp kiểu SAX cho HTML và bao gồm trình nối tiếp XML, trình tạo DOM và trình tạo DOM. Mỗi chuỗi có một chuỗi HTML làm đầu vào.

Cụ thể, phương pháp HTMLtoDOM có thể dễ dàng được định hướng lại để trả về chuỗi javascript cần thiết để xây dựng DOM cho bất kỳ chuỗi đầu vào nào của HTML.