Итак, несколько вещей:
setInterval()
, поддерживает ссылку на x
, а не значение снимка x
, так как существовал во время каждой конкретной итерации. Таким образом, поскольку x
изменяется в цикле, оно также обновляется в каждой из функций обратного вызова. for...in
используется для перечисления свойств объекта и может вести себя неожиданно при использовании на массивах. setTimeout()
, а не setInterval()
. Вы можете передать аргументы в функцию обратного вызова, предоставив дополнительные аргументы для setTimout()
:
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
Числа будут передаваться по значению, а не по ссылке. Вот пример:
var list = [1,2,3,4];
for (var x = 0, ln = list.length; x < ln; x++) {
setTimeout(function(y) {
console.log("%d => %d", y, list[y] += 10);
}, x * 500, x); // we're passing x
}
Если вы используете веб-сервер Apache, вы можете попробовать использовать серверные включения .
См. Включить один файл в другой , в котором кратко описаны различные доступные методы (вместе с их плюсами и минусами).
Вы не можете делать такие вещи в чистом HTML, если не используете фреймы или элемент iframe. Но лучше вручную их объединить ...
Вот пример того, как это сделать в чистом HTML с помощью iframe, который, хотя, как ни странно, не упоминается в спецификации HTML 4, поддерживается всеми основными браузерами (и входит в спецификацию HTML 5).
<body>
<h1>This is original page</h1>
<p>Some content on original page.</p>
<iframe src="sample.html" width="600" height="300"></iframe>
</body>
Вы можете настроить ширину и высоту, а также можете удалить границу, если хотите, чтобы страница была более цельной.
Будьте осторожны с решениями этой проблемы с помощью JavaScript, особенно если вы хотите, чтобы вас просматривали на мобильных устройствах.
Дополнительное примечание: избегайте также решений с набором фреймов, поскольку они не являются допустимой разметкой.
Вы можете использовать JavaScript для загрузки HTML-кода из одного документа в другой. Эта задача довольно проста с использованием инструментария jQuery :
$("The ID of a container (a div element for instance) in which you want to load
the contents of a HTML file").load("path to html file you want to load");
<div id="inserthere" />
$(function ()
{
$("#inserthere").load("loadme.html"); // Load the contents of loadme.html
// and stuff it in the div with the
// ID of "inserthere"
});
С php, easy и вывод будет hmtl:
Orginal.php
<!--headers -->
<?
include 'sample.html';
?>
<!-- rest of your site -->