2015-05-27 4 views
0

У меня есть сайт на основе jquery, который не требует освежения вообще. Но когда вы обновляетесь, вас бросают на индексную страницу. Я пытаюсь получить # систему внутри URL (загрузка индекса # будет загружена upload.php в #middle div). Теперь я получил такой системы работает как-то, но он держит освежающий мой ДИВ все время, и я не уверен, что это лучший способ сделать это:Страница загрузки Jquery для div, заданная # в url

if (window.location.hash) { 
    var hash = window.location.hash.substring(1); 

    switch(hash) { 
     case "files.php": 

      $("#middle").load(hash); 
     break; 
     case "upload.php": 
      $("#middle").load(hash); 
     break; 
     case "update.php": 
      $("#middle").load(hash); 
     break; 
     case "changepassord.php": 
      $("#middle").load(hash); 
     break; 
     case "options.php": 
      $("#middle").load(hash); 
     break; 
    } 
} else { 

} 

Все лучшие идеи для этого? Кстати, у меня есть этот LinkBar, которые должны работать вместе с ним (я настроек уже есть код, который изменяет # в зависимости от ссылки пользователь нажимает на в этом коде /)

$(document).ready(function(){ 
    $('#sidenav a').click(function(e){ 
     e.preventDefault(); 
     href = $(this).attr('href'); 
     window.location.hash = href; 
     urlLoad = href; 
     $("#middle").load($(this).attr('href')); 

    }); 
    $('#topbar .profile').click(function(e){ 
     e.preventDefault(); 
     $("#middle").load($(this).attr('href')); 
    }); 
}); 
+0

Не могли бы вы дать ссылку на ваш сайт, или, может быть скрипку? Я не уверен, понимаю ли я, что «постоянно обновляет мой div» означает именно в вашем контексте. – lucasnadalutti

ответ

0

Я бы продолжить, как это :

  1. не отдать имя целого файла (включая расширение .php), как это делает его только немного проще для потенциальных злоумышленников найти отправную точку Вместо этого используйте только название части. По существу, используйте «#files» в качестве вашего тега и загрузите страницу $("#middle").load(hash+".php"); Вместо переключателя/футляра вы можете использовать массив, чтобы проверить, разрешен ли запрошенный файл.
  2. Теперь, как мы собираемся осуществить это зависит от того, что ваши мотивов для просить разрешенные имена файлов: а) ли , потому что есть и другие сценарии, которые не должен быть в состоянии быть загружен в документ? (Ваш список является исчерпывающим) b) Или это так, вы можете убедиться, что запрашиваемый файл существует и не будет проблем? (Ваш список может быть динамическим)

    для а) Вы можете использовать массив ("files", "upload", "update" ...); определить свои разрешенные пути, и проверить, indexOf(), будь или нет файла допускается

    для б) вы можете использовать Ajax или проверить наличие ошибки 404, как предложил here

  3. Наконец, обернуть это в функцию, которая будет ссылаться, когда когда лет Вам нужно загрузить контент, поэтому вам не нужно делать это в в нескольких местах.

Без дополнительной информации, это насколько я могу дать совет. Я надеюсь, что это помогает.

0

Этот метод немного более неоднозначный. Этот метод будет извлекать страницу из каталога pages и добавить файл-тип .php на страницу. Если файл не существует, ничего не произойдет (если кто-то попытался ввести неизвестный файл). После того, как файл был загружен он заменит содержание #middle

function loadPage(page) { 
    $.get('pages/' + page + '.php', function(data) { 
     $('#middle').html(data); 
    }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^