2016-03-24 34 views
0

我的功能,它的工作:PHP調用腳本函數,與返回值 - 未捕獲的SyntaxError:意外的標記非法

<script> 
function createCookie(name,value,sec) { 
if (sec) { 
    console.log('createCookie: '+name+', '+value+', '+sec); 
    var date = new Date(); 
    date.setTime(date.getTime()+(sec*1000)); 
    var expires = "; expires="+date.toGMTString(); 
} 
else var expires = ""; 
document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) 
     { console.log('readCookie: '+name+',value: '+c.substring(nameEQ.length,c.length)); 
      return c.substring(nameEQ.length,c.length); 
     } 
    } 
    console.log('readCookie: '+name+', NULL'); 
    return null; 
} 
</script> 

調用bouth工作(如我在控制檯中看到)

<? 
echo '<script type="text/javascript">createCookie("'.$cookie_random_photo.'","'.$randf.'",60);</script>'; 

echo '<script type="text/javascript">readCookie("'.$cookie_random_photo.'");</script>'; 
?> 

但是當我探測得到輸出時,這使得未捕獲的語法錯誤:意外的令牌非法的

<? 
ob_start(); 
echo '<script type="text/javascript">readCookie("'.$cookie_random_photo.'");</script>'; 
$returned_value = ob_get_contents(); 
ob_end_clean(); 
?> 

<? 
ob_start(); 
echo '<script type="text/javascript">readCookie("'.$cookie_random_photo.'");</script>'; 
$returned_value = ob_get_clean(); 
?> 

這產生錯誤和屏幕輸出中「');」,readCookie()沒有被調用。

如何正確地得到$ returned_value

編輯全JS錯誤

VM119792:1 Uncaught SyntaxError: 
Unexpected token ILLEGAL 
c.extend.globalEval @ jquery.js:29 
Qa @ jquery.js:16 
c.extend.each @ jquery.js:30 
c.fn.extend.domManip @ jquery.js:110 
c.fn.extend.append @ jquery.js:103 
c.fn.extend.html @ jquery.js:107c.ajax.complete @ jquery.js:120 
d @ jquery.js:124 
x.onreadystatechange @ jquery.js:129 
+5

打開生成的html/JS,看看有什麼不對勁的地方。 –

+0

你可以發佈完整的錯誤嗎?這絕對是一個PHP錯誤? – Chris

+1

'未捕獲的SyntaxError:意外的令牌ILLEGAL'是一個JavaScript錯誤消息。 – Quentin

回答

0

這很可能是值得做的字符集你可以在下面的script標籤中添加charset =「utf-8」,看看是否可以解決這個問題嗎?

echo '<script type="text/javascript" charset="utf-8">readCookie("'.$cookie_random_photo.'");</script>'; 

還記得實際打印輸出

<? 
    ob_start(); 
    echo '<script type="text/javascript">readCookie("'.$cookie_random_photo.'");</script>'; 
    $returned_value = ob_get_contents(); 
    ob_end_clean(); 
    echo $returned_value; // <-- Only this will echo the contents back to the client. 
?> 
相關問題