Bonjour à tous,


Je veux charger des fichiers JS et CSS dynamiquement mais j'ai l'erreur suivante:
  1. Not allowed to load local resource: file:///D:/xampp/htdocs/responsive/fancyBox_fullpack/source/helpers/jquery.fancybox-buttons.css


Sur le $(document).ready(function() j'appelle la fonction de chargement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$(document).ready(function() 
{	var optFolder = "/responsive/fancyBox_fullpack/source";
	loadFile(optFolder);
}); //Ready
La fonction loadFile est la suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
function loadFile(pathFolder )
{	var jqXHR = ajaxOutput(pathFolder);
	jqXHR.success(function (jqXHRData) 
	{	var filePath ="";
		for (i = 0; i < jqXHRData.length; i++) 
		{	if (jqXHRData[i]["fic"].substr(-3) ==="css")
			{	 filePath = "<link rel='stylesheet' href=' " + jqXHRData[i]["fic"] +  "' media='screen' />";
				$('head').append(filePath);
			}
			else if (jqXHRData[i]["fic"].substr(-2) ==="js")
			{	filePath = "<link rel='stylesheet' href='" + jqXHRData[i]["fic"] +  "' media='screen' />";
				$('head').append(filePath);
			}
		}
	});
	jqXHR.error( function (jqXHR, ajaxOptions, thrownError)
	{	var errMsg = formatErrorMessage(jqXHR, thrownError);
		alert(errMsg);
	});
}
 
function ajaxOutput(pathFolder)
{	var pathFolderJSon= {};
	pathFolderJSon.pathFolder = pathFolder;
	var jqXHResponse =	$.ajax	
	({	type: "POST",
		url: "php/filesFolderList.php",
		data: pathFolderJSon,
		dataType: "json" //Le format JSon texte est toujours initialisé
	});	
	return jqXHResponse; 
} 
 
function formatErrorMessage(jqXHR, exception) {...}
J'ajoute le code du PHP pour l'appel à la fonction de recherche récursive des fichiers dans un répertoire avec la méthode RecursiveIteratorIterator
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$pathFolder = urldecode($_POST['pathFolder']);
$pathFolderRoot = $_SERVER['DOCUMENT_ROOT'].$pathFolder;
 
$pathFolderRoot  = json_decode(str_replace("/", "\\",  json_encode($pathFolderRoot)));
 
$sdirr2 = getcwd();
$dir = dir($pathFolderRoot);
 
while($itemDir = $dir->read() ) 
{        $d[] = $itemDir;
}
 
$objectsFolder = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathFolderRoot), RecursiveIteratorIterator::SELF_FIRST);
 
foreach ($objectsFolder as $file)
{       if (!$file->isDir()){$filesList[] = array ("fic"=>$file->getPathname());}
}
$returnData =  json_encode($filesList); 
echo  $returnData;
 
?>

Tout irait dans le meilleur des monde si le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
filePath = "<link rel='stylesheet' href='" + jqXHRData[i]["fic"] +  "' media='screen' />";
$('head').append(filePath);
Ne générait pas le message ci-dessous aussi bien pour les JS que pour les CSS :
Not allowed to load local resource: file:///D:/xampp/htdocs/responsive/fancyBox_fullpack/source/helpers/jquery.fancybox-buttons.js (01:09:47:485 | error, security)
at (anonymous function) (js/jquery-1.11.3.min.js:4:20731)
at m.fn.extend.domManip (js/jquery-1.11.3.min.js:4:22916)
at m.fn.extend.append (js/jquery-1.11.3.min.js:4:20620)
at (anonymous function) (:1:11)
at evaluate (:505:28)
at InjectedScript._evaluateOn (:875:55)
at InjectedScript._evaluateAndWrap (:808:34)
at InjectedScript.evaluateOnCallFrame (:933:21)
at (anonymous function) (js/own/filesManager.js:48:5)
at j (js/jquery-1.11.3.min.js:2:27309)
at k.fireWith (js/jquery-1.11.3.min.js:2:28122)
at x (js/jquery-1.11.3.min.js:5:22111)
at b (js/jquery-1.11.3.min.js:5:26030)

De plus, si différence il y a entre
$('head').append(filePath);
et
getScript()
cela reste très nébuleux. Une petite explication serait la bienvenue

Merci par avance pour toute aide.