2017-04-03 214 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

是的,我看到了。我在我的博客上再次检查。我会尽快给您回复。谢谢 –