Salve ragazzi, è un po di tempo che sto impazzendo su una cosa.
Ho un sito web che utilizza wordpress con un plugin chiamato videolock. Questo plugin è progettato in modo tale da far condividere i video prima di vederli.
Adesso: il plugin funziona bene se non carico l'sdk di facebook all'interno del mio sito.
Mi spiego meglio. Se metto dopo il tag body questo codice:
Il plugin da desktop fa comparire la pagina di facebook, invece se lo apro da mobile facebook genera un errore.
Invece se cancello il codice che ho riportato su il plugin funziona correttamente sia da mobile che da desktop.
Adesso, il problema è che se non utilizzo il plugin in un articolo non viene caricato l'sdk di facebook e quindi pulsanti e commenti non si vedono.
La parte interessata all'interno del plugin è questa, solo che non so come risolvere.
In particolare credo che le parti interessate del codice postato su siano queste:
Ho un sito web che utilizza wordpress con un plugin chiamato videolock. Questo plugin è progettato in modo tale da far condividere i video prima di vederli.
Adesso: il plugin funziona bene se non carico l'sdk di facebook all'interno del mio sito.
Mi spiego meglio. Se metto dopo il tag body questo codice:
HTML:
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/it_IT/sdk.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
Il plugin da desktop fa comparire la pagina di facebook, invece se lo apro da mobile facebook genera un errore.
Invece se cancello il codice che ho riportato su il plugin funziona correttamente sia da mobile che da desktop.
Adesso, il problema è che se non utilizzo il plugin in un articolo non viene caricato l'sdk di facebook e quindi pulsanti e commenti non si vedono.
La parte interessata all'interno del plugin è questa, solo che non so come risolvere.
HTML:
$(document).ready(function() {
var lockers = $(".youtubeblocker");
if( lockers.length == 0 ) {
return;
}
var fbid = lockers.attr('data-appid');
if( !fbid && lockers.length ) {
lockers.append('<div style="z-index:10000; font-size:15px; position:absolute; padding:5px; left:5px; right:5px; top:5px; text-align:center; background:red;color:white;">Please set the facebook appId from admin</div>');
return;
}
lockers.each(function(i, blocker){
$(blocker).hover(function(){
$(this).addClass('over');
}, function(){
$(this).removeClass('over');
}).click(function(){
$(this).addClass('sharing');
new CountDown($(blocker));
});
$('.sharebut',blocker).click( function(){
var but = this;
var save = function( share ) {
var data = {
action : 'video_share',
link : document.URL,
post : $(but).attr('data-post'),
share : share
};
var admin_ajax = $(blocker).attr('data-adminurl') + 'admin-ajax.php';
$.post( admin_ajax, data, function( r ){
unblock( $(but).parents('.youtubeblocker') );
});
};
FB.ui({
method: isMobile() ? 'feed' : '../sharer/sharer.php?u=' +encodeURIComponent(document.URL)+ '&t=&pass=',
link : document.URL,
image : $('.youtubeblocker .image').attr('src')
},
function(response) {
if (response) {
var postid = 0;
if( response.post_id ) {
postid = response.post_id;
}
if( response.object_id ) {
postid = response.object_id;
}
save( postid );
}
}
);
return false;
});
});
var jssdk = $('#facebook-jssdk');
if( ! jssdk.length ) {
var fb = document.createElement('div');
fb.setAttribute('id','fb-root');
document.getElementsByTagName('body')[0].appendChild(fb);
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/it_IT/all.js#xfbml=1&appId=" + fbid;
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}
});
In particolare credo che le parti interessate del codice postato su siano queste:
Codice:
method: isMobile() ? 'feed' : '../sharer/sharer.php?u=' +encodeURIComponent(document.URL)+ '&t=&pass=',
var jssdk = $('#facebook-jssdk');
if( ! jssdk.length ) {
var fb = document.createElement('div');
fb.setAttribute('id','fb-root');
document.getElementsByTagName('body')[0].appendChild(fb);
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/it_IT/all.js#xfbml=1&appId=" + fbid;
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}