2012-10-01 16 views
0

我有一個神祕的問題。 我有一個PHP語言數組是這樣的:在javascript中通過php迴應html標記

$lang['tip1054'] = '<b>Resource Error:</b>%s <br /> 
<b>OS:</b> %s <br /> 
<b> Ram:</b> %s <br /> 
<b> CPU:</b> %s <br /> 
'; 

我會證明它被寫入由JavaScript函數使用這樣的工具提示:

<span class='haveHelp' onMouseOver="ShowTip(' <?php printf ($lang['tip1054'],$error,$os,$ram,$cpu); ?> ')"> </span> 

但是這說明不了什麼。我用螢火蟲看看有什麼問題。面對這樣的錯誤:

SyntaxError: unterminated string literal 
[Break On This Error] 

ShowTip('<b>Resource Error:</b> 1054 

,這是HTML輸出:

<span class='haveHelp' onMouseOver="ShowTip('<b>Resource Error:</b>1054 <br /> 
<b>OS:</b> Windows Xp <br /> 
<b> Ram:</b> 1024MB <br /> 
<b> CPU:</b> Corei7-5130 <br />')">Error 1054</span> 
+1

您可以顯示''元素的完整呈現HTML嗎? – Dai

+0

[偉大的逃避現實(或:你需要知道怎麼處理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

0

答:您應該更換printf,因爲參數不完成你4%s$lang['tip1054']

printf ($lang['tip1054'],$os,$ram,$cpu); 

隨着

printf ($lang['tip1054'],"Fist Message", $os,$ram,$cpu); 

B.您應該刪除所有的空格和換行

$lang['tip1054'] = trim($lang['tip1054']); 
$lang['tip1054'] = str_replace(array("\r","\n"), "", $lang['tip1054']); 

See Demo

+0

它工作得很好...我只能刪除PHP新行... –

0

你不能有換行符在JavaScript字符串。使用str_replace("\n", '', $lang...)或其他東西將它們與PHP分開。

+0

和你的想法如何使用換行符? –

+0

如果你想在JavaScript中使用換行符,你必須使用''\ n「'文字。將JS與PHP混合出於各種原因通常不是一個好主意,這是一個好主意。 –

+0

非常感謝你,它工作得很好... –