2017-04-03 53 views
2

我試圖通過Blogger共享一些Malayalam文本到Facebook feed對話框,但我遇到了一些問題。這是問題。我直接在博客帖子的HTML部分使用提要對話框代碼,因此,最終文本會被博主自動轉換爲Unicode十進制數字,Facebook將以相同的不可讀格式顯示文本。Unicode文本轉換爲十進制 - Blogger

一個例子

function FBShareOp(){ 
var name = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്' 
var description = "ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്" 
var share_image = 'IMAGE LINK '; 
var share_url = 'URL'; 
var share_capt = 'ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'; 

所以在上面的代碼中,我使用的是自定義的文本馬來亞和ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്後公佈後,博主文本轉換爲ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്和Facebook的顯示文本酷似那。

那麼我該如何讓它工作?我不想讓博客像這樣格式化它。有沒有任何方式發佈該文本沒有這樣的格式,以便Facebook可以正確顯示它?提前致謝。

回答

0

發生這種情況是因爲Blogger使用的XML解析器使用了轉義特定字符。阻止內容被越獄的一種方法是將其封入 -

<![CDATA[ 
... Your code ... 
]]> 

但是在帖子編輯器中,上述方法不起作用。相反,您將不得不通過JavaScript函數對實體進行解碼(如following answer中所示)。您的代碼將以下列方式更改 -

<script> 

    var decodeEntities = (function() { 
    // this prevents any overhead from creating the object each time 
    var element = document.createElement('div'); 

    function decodeHTMLEntities(str) { 
     if(str && typeof str === 'string') { 
     // strip script/html tags 
     str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, ''); 
     str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, ''); 
     element.innerHTML = str; 
     str = element.textContent; 
     element.textContent = ''; 
     } 

     return str; 
    } 

    return decodeHTMLEntities; 
    })(); 

    function FBShareOp(){ 
    var name = decodeEntities('ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'); 
    var description = decodeEntities("ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്"); 
    var share_image = 'IMAGE LINK '; 
    var share_url = 'URL'; 
    var share_capt = decodeEntities('ഇതൊരു ടെസ്റ്റ് പോസ്റ്റാണ്'); 
    } 

</script> 
+0

嗨Prayag,感謝您的答覆。這裏不適合我。它仍然是格式化文本。你能否在博客博客上進行測試並確認?提前致謝。我直接在後HTML中使用代碼,而不是在博客主題順便說一句。 –

+0

查看此博客的HTML源代碼 - http://saifyv1.blogspot.com/在頂部您將看到您的代碼實例。你會注意到,在CDATA存在的情況下,轉義不會發生 –

+0

是的,我看到了。我在我的博客上再次檢查。我會盡快給您回覆。謝謝 –