J'ai un script PHP qui publie du JavaScript personnalisé basé sur le paramètre, avec le type d'en-tête text/javascript
. Cette URL PHP est incluse dans le src
d'un tag <script>
. Cependant, il semble y avoir un problème, car le script semble être non fonctionnel. Comme dans, j'ai une alerte dans le script, qui devrait être exécutée immédiatement après l'inclusion, mais ce n'est pas le cas. Où vais-je mal?Publication PHP JavaScript
côté serveur PHP
<?php
//Exploding the path after the file widget to get user details
$expl = explode("/",$_SERVER['PATH_INFO']);
$c=count($expl);
//Handling the cases as widget/a widget//a etc
switch($c) {
case 2:
if(empty($expl[0]) && !(empty($expl[1]))) pumpValid();
else pumpInvalid();
break;
case 3:
if(empty($expl[2]) && !(empty($expl[1])) && empty($expl[0])) pumpValid();
else pumpInvalid();
break;
default:
pumpInvalid();
break;
}
function pumpValid() {
global $expl;
//Checking for a matching account in the urllist
include('embedUrl/urllist.php');
if(isset($customerList[$expl[1]])) {
header("Content-Type: text/javascript");
//Setting the host path for fetching the JS files later. As in stage or vidteq.com
echo "alert('h');";
echo 'var _serverHostUrl="http://'.$_SERVER["SERVER_NAME"].eregi_replace('widget.*','',$_SERVER["REQUEST_URI"]).'";';
}
else
pumpInvalid();
}
function pumpInvalid() {
//Should redirect to error/home page
echo "Are You Nuts";
}
?>
function init() {
alert('hi');
addJSinHead('jquery-1.3.2.min.js');
addJSinHead('OpenLayers.js');
addJSinHead('json2.js');
addJSinHead('dom-drag.js');
addJSinHead('globals.js');
}
function addJSinHead(fileName) {
var head=document.getElementsByTagName('head');
var new=document.createElement('scrpit');
new.src=_serverHostUrl+'/js'+fileName;
new.type='text/javascript';
head.appendChild(new);
}
init();
inclusion dans le côté client HTML
<script src='http://rak/cvs/widget/cis/' type='text/javascript'></script>
L'alerte est en dehors de la fonction, elle doit donc être exécutée immédiatement. J'ai joint le code en question – Rakesh