2013-04-06 31 views
8

Giả sử tôi có mã như sau:Làm cách nào để sử dụng lại mã html trong mọi trang html?

<!DOCTYPE HTML> 
<html> 
<head> 
<style> 
#overlay_form{ 
    position: absolute; 
    border: 5px solid gray; 
    padding: 10px; 
    background: white; 
    width: 270px; 
    height: 190px; 
} 
#pop{ 
    display: block; 
    border: 1px solid gray; 
    width: 65px; 
    text-align: center; 
    padding: 6px; 
    border-radius: 5px; 
    text-decoration: none; 
    margin: 0 auto; 
} 
</style> 
<script src="jquery.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 
    //open popup 
    $("#pop").click(function(){ 
     $("#overlay_form").fadeIn(1000); 
     positionPopup(); 
    }); 

    //close popup 
    $("#close").click(function(){ 
     $("#overlay_form").fadeOut(500); 
    }); 
}); 

//position the popup at the center of the page 
function positionPopup(){ 
    if(!$("#overlay_form").is(':visible')){ 
     return; 
    } 
    $("#overlay_form").css({ 
     left: ($(window).width() - $('#overlay_form').width())/2, 
     top: ($(window).width() - $('#overlay_form').width())/7, 
     position:'absolute' 
    }); 
} 

//maintain the popup at center of the page when browser resized 
$(window).bind('resize',positionPopup); 

</script> 
</head> 
<body> 

<a href="#" id="pop" >PopUp</a> 
<br /> 
<form id="overlay_form" style="display:none"> 
<h2> Put your contents here..</h2> 
<label>Username: </label><input type="text" name="username" /><br /><br /> 
<label>Password: </label><input type="text" name="password" /><br /><br /> 
<input type="button" value="Login" /> 
<a href="#" id="close" >Close</a> 
</form> 


</body> 
</html> 

Đây là ví dụ về hộp thoại bật lên. Giả sử tôi muốn sử dụng hộp thoại này trong tất cả các trang web của tôi (a.html, b.html, c.html và v.v.), cách tốt nhất và dễ nhất để làm cho mã ở trên có thể sử dụng lại được là gì? Bởi vì tôi nghĩ rằng để sao chép dán 'overlay_form' vào mỗi trang html là không hợp lý.

Tôi vẫn ở cấp độ bắt đầu bằng Javascript, do đó, để tạo plugin jQuery cho điều này là quá khó đối với tôi. Đó là lý do tại sao tôi muốn tìm cách khác để làm điều đó. Cảm ơn.

Trả lời

14

Bạn có thể đặt mã của bạn trong một .html tập tin khác nhau và tải nó với .load()http://api.jquery.com/load/

$('#targetid').load('somewhere/a.html'); // loads the .html in the #targetid 
+0

Tôi đã nhìn vào tái sử dụng mã và như jQuery tiếp cận tốt nhất, NHƯNG, tôi gặp sự cố khi áp dụng css của tôi cho nội dung đã tải. Cách thích hợp để làm điều này là gì? –

+0

a.html này sẽ được GoogleBot lập chỉ mục như thế nào? – walv

3

Thực hành tốt nhất nếu bạn muốn sử dụng lại mã nhiều lần là đặt tất cả mã jQuery của bạn vào một tệp bên ngoài .js, đặt tất cả CSS của bạn vào một biểu định kiểu bên ngoài và tham chiếu các tệp đó từ mỗi trang.

Ví dụ: cho CSS, trong một tập tin có tên style.css:

<link rel="stylesheet" type="text/css" href="style.css"> 

và cho jQuery trong một file có tên jQueryFunctions.js:

<script type="text/javascript" src="jQueryFunctions.js"></script> 

Về vấn đề để bao gồm cả mã HTML tương tự trên các trang khác nhau, một trong những đơn giản nhất cách tôi có thể nghĩ là sử dụng hàm PHP include(). Here's a very simple one-page tutorial khi sử dụng lại biểu mẫu HTML trên nhiều trang sử dụng nó.

2

đặt tất cả các mã tái sử dụng của bạn trong một tài liệu html và gọi nó vào trang bằng cách sử dụng đoạn code sau:

<?php include("example.html") ?> 
+0

Đừng nghĩ rằng anh ta đang sử dụng 'php', anh ta đã không gắn thẻ nó. – Spokey

+2

Tôi không nhận thấy, tôi sẽ để lại câu trả lời chỉ trong trường hợp ... –

+0

Tôi đã nhận được câu trả lời những gì tôi đang tìm kiếm, cảm ơn bạn user1102285. –

0

Modest HTML thực hiện việc này.

Nó trông như thế này:

main.xhtml

<?xml version='1.0' encoding='UTF-8'?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <include>overlayForm</include> 
    </head> 
    <body> 
    <overlayForm/> 
    </body> 
</html> 

overlayForm.xml

<form style="display:none"> 
    <h2> Put your contents here..</h2> 
    <label>Username: </label><input type="text" name="username" /><br /><br /> 
    <label>Password: </label><input type="text" name="password" /><br /><br /> 
    <input type="button" value="Login" /> 
    <a href="#" id="close" >Close</a> 
</form> 
Các vấn đề liên quan