2009-09-24 59 views
-1

我有一個基於參數發佈自定義JavaScript的PHP腳本,標題類型爲text/javascript。此PHP網址包含在<script>標記的src中。但是,似乎有一個問題,因爲腳本似乎不起作用。就像在裏面,腳本里面有一個警報,應該在包含之後立即執行,但這不會發生。我哪裏錯了?PHP發佈JavaScript

服務器端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(); 

包括在客戶端HTML

<script src='http://rak/cvs/widget/cis/' type='text/javascript'></script> 

回答

1

是應該的功能塊的內部執行的警報?如果是這樣,那麼你首先需要執行實際的功能。

也可以嘗試直接複製並粘貼javascript src url到瀏覽器的url欄中。

如果上述內容沒有幫助,則需要分析一些代碼。

+0

警報在函數之外,所以應該立即執行。我已附上代碼 – Rakesh 2009-09-24 14:21:44

0

您可以使用Firebug檢查以查看腳本的輸出是否符合您的期望以及標題是否按照您的預期發送。

您需要提供一些代碼以獲得進一步的幫助。

編輯: 我沒有看到任何地方,你在PHP輸出頭:

header('Content-Type: text/javascript'); 

EDIT2: 看起來它的定義之前,就像你調用pumpValid功能。

+0

嗨,它在pumpValid函數中有。我相信我有理由。我是否需要回顯Javascript的每一行?將它留在PHP標記之外將不起作用? – Rakesh 2009-09-24 14:32:13