2012-04-11 2 views
1

저는 동적으로로드하려는 간단한 포트폴리오 사이트를 설정하고 있습니다. 이 경우 jQuery 플러그인 pagify.js을 사용하고 있습니다. 이 플러그인의 설치는이처럼, 매우 간단합니다 :jQuery를 사용하여 html 파일의 디렉토리를 탐색 하시겠습니까?

$('#page_holder').pagify({ 
    pages: ['home', 'about', 'contact'], 
    default: 'home' 
}); 

이 유일한 문제는로드 할 때마다 한 페이지 배열에 수동으로 추가해야한다는 것이다.

디렉토리를 통과하여 각 페이지를 배열에 추가하는 방법이 있습니까? 따라서 foo.html과 bar.html 파일을 포함하는 디렉토리/게시물이 있다면 'foo', 'bar'를 반환합니다.

EDIT : "백엔드 시스템"(지명이라 부를 수 있음)은 지킬이므로 추가 한 서버에 html 페이지가 있습니다.

+2

어떤 백엔드 언어를 사용하고 있습니까? 브라우저에서 실행되고 파일 시스템에 대한 액세스 권한이 없으므로 JavaScript로는 불가능합니다. – ManseUK

답변

0

javascript가있는 폴더의 디렉토리 또는 목록 파일에 액세스 할 수 없습니다. 보안상의 이유로.

당신이 당신이 호출 할 수있는 JSON 파일에서 페이지의 배열을 할 수있는 자바 스크립트에서 쉽게 일을하려면 PHP는, asp.net 등 프레임 워크


와 파일을 나열하는 것이 가능하지만 각 페이지로

$.getJSON('test.json', function(data) { 
    $('#page_holder').pagify({ 
     pages: data, 
     default: 'home' 
    }); 
}); 

JSON 파일 : 당신이 당신의 백엔드 코드를 사용하여 JS 구축해야합니다

['home', 'about', 'contact'] 
0

. 여기에 그냥 @Blowsie 아래에 언급 한 바와 같이 귀하의 PHP 페이지 배열을 공급 할 수 .. 또는

$arr = glob('slide_*.html'); //Get all files like 'slide_home.html' 

//You'll need to get the array to a usable format to contain the terms 
//"home", "about", "contact", etc...  
//once its correct, and you have the default page in slot 0, 
//echo the dynamic JS Code in the right place. 

<?php 
    echo "$('#page_holder').pagify({ "; 
    echo " pages: ['". implode("', '", $arr) ."'], "; 
    echo " default: '".$arr[0]."' "; 
    echo "}); "; 
?> 

하는 PHP 예입니다. 결론은 수동으로 어딘가에 뭔가를 추가해야하거나 백엔드 코딩 플랫폼을 사용해야한다는 것입니다.

1

당신은 충분히 쉽게이 작업을 수행하고 자바 스크립트로 결과를 추가 할 수 있습니다 서버 측 언어로 PHP 사용하는 경우 :

$fileList = ''; 
$folder = 'posts'; 
$files = scandir($folder); 
foreach ($files as $currentFile) { 
    if (strpos($currentFile, '.html') !== FALSE) { 
     $filename = str_ireplace('.html', '', $currentFile); 
     $fileList .= (empty($fileList) ? '' : ', ') . "'$filename'"; 
    } 
} 

이제 $ 파일 목록은 쉼표로 구분 된 목록했습니다. JS에서 바로 사용하십시오.

$('#page_holder').pagify({ 
    pages: [<?= $fileList; ?>], 
    default: 'home' 
}); 
관련 문제