how to translate facebook's like button into another language only with javascript?
I have a page where the english version f开发者_如何学JAVAacebook's like button is loaded by default. I can only manipulate the page with javascript and don't have access to certain things, i.e. facebook script. So, how can I have that like button translated into another language, say spanish? Thanks.
The source of the facebook connect javascript is: http://connect.facebook.net/en_US/all.js
just change en_US to the locale you want. en_ES is Spain's locale, and a list of all facebook locales is at http://facebook.com/translations/FacebookLocales.xml
It's going to be extremely difficult - there isn't a 'nice' way to do it. This is because the like button lives inside an iframe, and you can't access the contents of it from within your page, with javascript or anything else.
You can manipulate the iframe's src
attribute - check the facebook documentation to see if you can pass in a language parameter - something like: &lang=es
on the end of the URL.
Updated - the URL parameter is locale, as in: &locale=es_ES
Others are talking about an iFrame, which I don't see anywhere on my Facebook page. If you can use GreaseMonkey, or are able to access the links via JS, you can use the following:
jQuery:
$('.liketext').html('Something Else')
JavaScript:
function getElementsByClass(_class,_obj,_tag) { var found = new Array(); if ( _obj == null ) _obj = document; if ( _tag == null ) _tag = '*'; var els = _obj.getElementsByTagName(_tag); var pattern = new RegExp("(^|\\s)"+_class+"(\\s|$)"); for (var n=els.length, j = 0; n--; ) { if ( pattern.test(els[n].className) ) { found[j] = els[n]; j++; } } return found; } var likes = getElementsByClass('liketext',document); for (var n=likes.length; n--; ) likes[n].innerHTML = "NEW LIKE TEXT";
To target your iFrame:
document.getElementById('<your iFrame ID').contentWindow.document;
window.frames[0]
Example:
var iF = document.getElementById('<your iFrame ID>').contentWindow.document; // var iF = window.frames[0].document; // alternative to above var likes = getElementsByClass('liketext',iF); for (var n=likes.length; n--; ) likes[n].innerHTML = "NEW LIKE TEXT";
精彩评论