2010-10-13 29 views
17

Tôi đã tự hỏi rằng có một cách để bao gồm một số nội dung html bên trong một html khác bằng cách sử dụng html?Tương đương bao gồm() trong HTML

Một thay thế cho PHP

<?php include("file.php"); ?> 

Đây có phải là có thể?

EDIT:

này đã mang lại một số nhầm lẫn, những gì tôi cần là "gần như một thẻ html" mà có các chức năng của bao gồm một tài liệu html trong khác.

+1

HTML5 thực hiện điều đó. Nhưng không phải lúc này. – Jake

+0

@ Hãy làm điều đó là tốt để biết. Chức năng này sẽ được gọi như thế nào? – Trufa

+2

@Trufa Tôi tin rằng anh ấy đang nói về thuộc tính 'liền mạch 'của HTML5 cho iframe (https://html.spec.whatwg.org/#attr-iframe-seamless), nhưng tại thời điểm hỗ trợ cho nó khá ảm đạm: http : //caniuse.com/#feat=iframe-seamless – waldyrious

Trả lời

18

Nó không thể được thực hiện hoàn toàn bằng HTML. (Tuy nhiên, có iframe nhưng tôi không nghĩ rằng đủ điều kiện trong trường hợp này.)

Có thể thực hiện bằng JavaScript. Bạn lấy tập tin khác qua Ajax, và đặt nội dung của nó bên trong một phần tử HTML trên trang hiện tại.

+0

Tôi rất hạn chế, tôi thực sự yêu cầu các trang tab fmbl trong facebook. – Trufa

3

Không có thứ gì như vậy. Bạn sẽ phải sử dụng một ngôn ngữ kịch bản phía máy chủ hoặc JavaScript để làm một cái gì đó như thế này.

1

Có có nhưng bạn cần phải kích hoạt nó trong cấu hình hoặc .htaccess của bạn:

Options +Includes 
AddType text/html .shtml 
AddHandler server-parsed .shtml 

Tất nhiên với điều đó cần youd để đổi tên bất kỳ tập tin làm bao gồm để .shtml ... hoặc bạn có thể sử dụng jsut :

Options +Includes 
AddType text/html .html 
AddHandler server-parsed .html 

cú pháp cũng tương tự như nhận xét:

<!--#include virtual="/footer.html" --> 
+3

không phải là html. –

+0

cũng không, nhưng nó không đòi hỏi một cái gì đó giống như PHP hoặc. – prodigitalson

+0

Đây là phần bao gồm phía máy chủ, không phải HTML thuần túy. Thật dễ dàng, nếu không dễ dàng hơn, có thể sử dụng JavaScript. –

5

t điều duy nhất anh ta sẽ là một khung nội tuyến thuần html. nhưng bạn cũng có thể sử dụng javascript để lấy trang thông qua ajax và đưa nó vào hirarchy dom của bạn

+0

Không, tôi không thể sử dụng iframe. cảm ơn – Trufa

6

HTML không có tính năng để bao gồm nội dung bổ sung nguyên bản. Tuy nhiên hầu hết các máy chủ web không có server-side bao gồm báo cáo:
SSI in Apache
SSI in IIS

2

Đây có thể là một vài năm cuối nhưng đây là cách tôi đã làm nó!

trong dòng đầu tiên sau khi đặt dòng này!

<SCRIPT LANGUAGE="JavaScript" src="http://yourdomain.com/header.js"> 

sau đó tạo tệp có tên "header.js" và nhập nội dung của tệp bạn muốn đưa vào! như vậy ....

<!-- Begin 
document.write('<center>'); 
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>'); 
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>'); 
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>'); 
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>'); 
document.write('<hr>'); 
document.write('</center>'); 
// End --> 

Hy vọng trợ giúp này!

+2

Một hạn chế là người dùng không bật JavaScript sẽ không thấy nội dung được viết như vậy. Điều đó hiện bao gồm trình thu thập thông tin của công cụ tìm kiếm, do đó nội dung sẽ không hiển thị trong công cụ tìm kiếm. –

+1

OK ... thnx không nghĩ về điều đó! t – Cavemanharris

+0

Không biết tại sao điều này lại có quá nhiều downvotes. Nó tốt như hầu hết các giải pháp ở đây. – EML

29

Các bạn đã thử:

<object type="text/html" data="file.html"></object> 
+0

thật tuyệt vời! – cnlevy

+3

Rất đẹp nhưng có ít nhất một lỗ hổng tôi tìm thấy: ít nhất là trong chrome, nhấp vào một liên kết bên trong khung đối tượng theo mặc định sẽ mở liên kết mới INSIDE đối tượng, thay vì trong trình duyệt. Đặt mục tiêu liên kết thành target = "_ top" trong tệp được bao gồm là một cách giải quyết khả thi. –

9

Shameless plug của một thư viện mà tôi đã viết giải quyết này.

https://github.com/LexmarkWeb/csi.js

<div data-include="/path/to/include.html"></div> 

trên sẽ lấy nội dung của /path/to/include.html và thay thế div với nó.

+0

Tuyệt đối tuyệt vời! Hoạt động hoàn hảo ... – Varun

+1

không hoạt động đối với 'chrome' – javadba

+0

@javadba bạn đã thêm' --allow-file-access-from-files' vào thời gian chạy chrome như được mô tả trong readme kho lưu trữ? –

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