如何在 Facebook 上分享内容 ajax
How to share content ajax on Facebook
原来我的网站有不同的部分由 ajax 加载。例如,我想在 facebook 上分享联系人部分,但没有办法做到这一点,因为他们总是共享索引。
ajax加载内容时我的网站url很好
www.example.com/#contacto
加载ajax内容的按钮:
<a href="#contacto" onClick="cargarbio('ficha.php','contenido-texto')">CONTACTO</a>
Ajax代码:
function nuevoAjax(){
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// Función para cargar los contenidos de forma asíncrona.
// + pagina: fichero cuyo contenido queremos cargar.
// + identidicador del elemento en el que se cargará el nuevo contenido.
function cargarbio(pagina,destino){
var contenedor;
var ajax;
contenedor = document.getElementById(destino);
ajax = nuevoAjax();
ajax.open("GET", pagina, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText;
//do Ajaxy stuff here to insert new content into hidden div 'foo' FUN
FB.XFBML.parse(document.getElementById('contenido-texto'), function() {
document.getElementById('yourContent').innerHTML += document.getElementById('contenido-texto').innerHTML;
});
//FUN
}
}
ajax.send(null);
}
对于动态内容,您必须使用 http://prerender.io 等预呈现服务,因为 Facebook Scraper 不解释 JS 代码。因此,行为就是您所描述的...
见
原来我的网站有不同的部分由 ajax 加载。例如,我想在 facebook 上分享联系人部分,但没有办法做到这一点,因为他们总是共享索引。
ajax加载内容时我的网站url很好
www.example.com/#contacto
加载ajax内容的按钮:
<a href="#contacto" onClick="cargarbio('ficha.php','contenido-texto')">CONTACTO</a>
Ajax代码:
function nuevoAjax(){
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// Función para cargar los contenidos de forma asíncrona.
// + pagina: fichero cuyo contenido queremos cargar.
// + identidicador del elemento en el que se cargará el nuevo contenido.
function cargarbio(pagina,destino){
var contenedor;
var ajax;
contenedor = document.getElementById(destino);
ajax = nuevoAjax();
ajax.open("GET", pagina, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText;
//do Ajaxy stuff here to insert new content into hidden div 'foo' FUN
FB.XFBML.parse(document.getElementById('contenido-texto'), function() {
document.getElementById('yourContent').innerHTML += document.getElementById('contenido-texto').innerHTML;
});
//FUN
}
}
ajax.send(null);
}
对于动态内容,您必须使用 http://prerender.io 等预呈现服务,因为 Facebook Scraper 不解释 JS 代码。因此,行为就是您所描述的...
见