Заменить содержимое страницы перед загрузкой файла? - PullRequest
0 голосов
/ 21 января 2010

Я хотел знать, есть ли какая-то разновидность сценариев, которую я могу использовать, чтобы я мог просто изменить одну маленькую вещь, и тогда содержимое изменится для нескольких страниц? Может быть, PHP или файл htaccess.

Что я хочу сделать, так это создать страницу «В разработке» для своего веб-сайта, которую я могу периодически включать или выключать. Сейчас я использую метод JS, который не слишком эффективен. То, что я делаю, это заменит содержимое тега body на содержимое страниц, находящихся в разработке, а затем изменит заголовок на «В разработке». Проблема с этим, функция загружается после загрузки страницы. Поэтому мне нужен либо JS-скрипт, который будет загружаться раньше, чем что-либо на странице, либо PHP-скрипт, который делает что-то похожее. Я также подумал (если бы это было возможно), что файл htaccess тоже будет очень хорош, потому что я могу применить его к определенным каталогам. Я знаю, что могу использовать файл htaccess для перенаправления пользователя (и я могу сделать это с помощью PHP и JS), но я не хочу этого делать, потому что я хочу, чтобы URL оставался прежним. Если бы я перенаправил пользователя из page1.html в underconstruction.html, то это изменило бы URL в браузере. Я хочу, чтобы URL оставался как page1.html для page1, page2.html для page2 и page3.html для page3 ... Кто-нибудь знает, как я могу выполнить такую ​​задачу? Если да, пожалуйста, помогите.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 21 января 2010

Если вы используете следующий фрагмент в файле htaccess, ваш URL не изменяется, а перенаправляет:

RewriteEngine on
RewriteRule ^(.*)$ ./under_construction.html [L]
1 голос
/ 21 января 2010

Конечно, давайте возьмем пример ux9i и слегка переписаем его:

// Set this to true to rewrite the page
var underConstruction = true;

function rewritePage(){
    if (underConstruction){
        document.getElementById ('entirePage').innerHTML =
            "<h1>Under construction</h1>";
    }
}

test.html

 <html>
    <head>
<script type="text/javascript">
window.onload = rewritePage; 
</script>
        <title>write example</title>
        <script type="text/javascript" src="UnderConstruction.js"></script>
    </head>
    <body>
        <div id="entirePage">
            <p>Some document content.</p>
        </div>
    </body>
    </html>

Это должно сработать, если бы я был тобой, я бы использовал перенаправление вместо этого, вот что я имею в виду:

// Set this to true to rewrite the page
var underConstruction = true;

function rewritePage(){
  if (underConstruction){
location.href = 'contruction.html';
  }
}

Оставьте HTML как есть. Приветствия

EDIT

Вот как это сделать в php, вы создадите страницу с именем скажем "construction.html", теперь внутри вашей страницы php вверху разместите этот код

<?php
$redirect = 1;
if($redirect == 1){     
header('Location: construction.html');
}
?>

Он будет напрямую переводить / перенаправлять вас на страницу конструирования, если перенаправление установлено на единицу .. после того, как вы закончите со страницей конструктора, либо полностью удалите эту часть кода, либо установите перенаправление на любое другое число, кроме 1.

Извините, я только что прочитал эту часть

Если бы я перенаправил пользователя из page1.html to underconstruction.html, то это меняет URL в браузер. Я хочу, чтобы URL оставался как page1.html для page1, page2.html для page2 и page3.html для page3 ... Кто-нибудь знает, как я могу сделать такое задание?

Вам следует сообщить другим людям, когда вы редактируете свой вопрос, вам следует использовать iframe, попробовать Google, что такое iframe и как его использовать. Затем вы можете применить ту же логику, описанную выше, и к iframes.

0 голосов
/ 21 января 2010

Пусть все ваши страницы содержат этот скрипт.

UnderConstruction.js:

// Set this to 1 to rewrite the page
var underConstruction = 0;

function rewritePage ()
{
    if (underConstruction)
    {
        document.getElementById ('entirePage').innerHTML =
            "<h1>Under construction</h1>";
    }
}

test.html:

<html>
<head>
    <title>write example</title>
    <script type="text/javascript" src="UnderConstruction.js"></script>
</head>
<body onload="rewritePage()">
    <div id="entirePage">
        <p>Some document content.</p>
    </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...