2014-01-12 23 views
2

我掙扎着從我的阿賈克斯電話撥回英鎊(£)。從阿賈克斯電話返回英鎊(£)

這是jQuery的電話我

(function(d){ 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_GB/all.js"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 

$.post('ajax.php?vno=' + new Date().getTime(), { 
    action: 'submit' 
}, function(res){ 
    if (res.status) { 
     alert(res.post); 
     FB.api('/me/feed', 'post', { message: res.post },function(){}); 
    } 
},'json'); 

在我的PHP腳本,我回傳html_entity_decode("£");但警報顯示£

如果我改變我的PHP代碼html_entity_decode("£");警告框顯示什麼

我怎樣才能得到警報顯示£

+2

嘗試僅返回'''或'£'而不使用'html_entity_decode()'。 – BenM

+0

'£'不顯示,'£'顯示'£',所以我需要使用jQuery將£轉換爲£? – Damian

回答

3

Javascript alerts don't interpret HTML entities(有關如何在提醒實體前解碼實體的示例,請參閱該問題的答案)。如果您僅使用警報測試實際要插入到HTML Web中的內容頁面,那麼如果你看到£,那麼你的最終代碼應該可以正常工作。

但無論如何,沒有太大的需要使用實體。如果您的Ajax return和您的網頁的字符編碼設置正確(例如兩個UTF-8),那麼只需返回'£'就可以在警報和頁面中工作。相信我,我是英國人。我們有我們的鍵盤一個£關鍵,它非常簡單,只是工作爲一體的現代化網絡:)

+0

感謝馬特,我應該提到我發佈回到facebook用戶的牆上 - FB.api('/ me/feed','post',{message:res.post},function(){}) ; – Damian

+0

在這種情況下,我只需使用標準的UTF-8£符號。 Facebook會好起來的。確保你所有的東西都被聲明爲使用UTF-8。 –

+0

當我嘗試把英鎊傳回去時,沒有任何東西被貼到牆上。如果我傳回£,它會發帖£ – Damian

0

在角色你可以做follwoing事情

首先粘貼輸出到無形的範圍,並採取價值形式有

使用代替

document.getElementById('output').innerHTML = res.post; 
    alert(document.getElementById('output').innerHTML); 

alert(res.post); 

任何地方在身體下面的代碼粘貼

<div id='output' style="display:block"></div> 

上述股利將不可見

我想上面的代碼與res.post值等於

post = '&#163'; 
    document.getElementById('output').innerHTML = post; 
    alert(document.getElementById('output').innerHTML); 

,它給了我£警報;