2010-08-25 40 views
5

cách tôi có thể tải trang html bên trong div. Với thẻ 'đối tượng' đang tải, nhưng tôi nghĩ đó không phải là cách tiếp cận tốt. Nó không phải là một tập tin bên ngoài. Dojo có tốt cho việc này không?tải trang html bên trong div

+2

mà không cần usin g iframe :) – coder247

Trả lời

1

này cũng làm việc ... sử dụng võ đường ...

<script type="text/javascript"> 
var url = dojo.moduleUrl("dijit.form", "help.html"); 
dojo.xhrGet({ 
    url: url, 
    load: function(html){ 
     dojo.byId("mycontent").innerHTML = html; 
    } 
}); 
</script> 

<div id="mycontent"> 

</div> 

Cập nhật:

Trong Dojo 1.7+, hãy sử dụng require.toUrl thay vì dojo.moduleUrl

3

Tôi không hoàn toàn chắc chắn những gì bạn đang tìm kiếm, nhưng nếu bạn muốn hiển thị một tài liệu HTML bên trong một tài liệu HTML khác thì tôi nghĩ cách duy nhất để làm điều này là sử dụng iframe. Kiểm tra hướng dẫn này: http://www.designplace.org/tutorials.php?page=1&c_id=1

lẽ bạn có thể tải các tài liệu HTML và lột bỏ sự HEAD và gói BODY yếu tố và sau đó chèn mã vào các yếu tố DIV.

EDIT: Ah, no iframes bạn đã nói. Vâng, sau đó tôi đề nghị sau này. ^^

12

Sử dụng jquery

$("#mydiv").load("myexternalfile.html"); 
+2

Bộ lọc có lọc các phần tử không mong muốn như 'HTML',' HEAD' và 'BODY' không? Nếu vậy, thì đây sẽ là một giải pháp khá thanh lịch. Tốt hơn nhiều so với cố gắng thực hiện chèn thủ công. – gablin

+1

Không trích xuất tất cả html từ 'myexternalfile.html', sau đó đặt nó vào trong div. – Starx

-1

Bạn phải sử dụng jQuery với phương pháp load(). Đây jQuery tài liệu tham khảo về phương pháp tải: http://api.jquery.com/load/

1

Không có lý do để sử dụng jQuery chỉ để tải nội dung trang của bạn (ví dụ chỉ cho một div) nếu không có một nhiệm vụ mà cần các hàm khuôn khổ của :)

này nên được thực hiện bằng các khái niệm cơ bản về AJAX. Kiểm tra điều này: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

0

Bạn vẫn có thể sử dụng jquery để tải nội dung thông qua cuộc gọi ajax. Lấy kết quả và xóa <body> và mọi thứ trước đó, và </body> và mọi thứ đằng sau nó. Bạn có thể sử dụng regex để đảm bảo bạn bao gồm bất kỳ thuộc tính nào của thẻ body.

Sau đó, bạn còn lại với html cơ thể thô, mà bạn có thể thêm vào div bằng cách sử dụng jQuery.

jQuery.ajax({ 
    url: 'page.html', 
    success: function(data, textStatus, XMLHttpRequest) { 
     data = data.replace(/.*<body.*?>/gi,''); 
     data = data.replace(/</body>.*/gi,''); 
     jQuery('#myDiv').html(data); 
    } 
}); 

regex của tôi là một chút gỉ, do đó bạn có thể phải tinh chỉnh mà :)

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