什么是「#fbml=1“;在<;脚本src=";http://connect.facebook.net/en_US/all.js#xfbml=1">?URL不';我没有哈希,但没有它,它就不会';行不通
什么是「#fbml=1“;在<;脚本src=";http://connect.facebook.net/en_US/all.js#xfbml=1">?URL不';我没有哈希,但没有它,它就不会';行不通,facebook,http,facebook-like,Facebook,Http,Facebook Like,\fbml=1在中做什么?(这是从中获得的类似Facebook的官方按钮代码) 另外,在《小提琴手》中,我看到它只是在做一个简单的动作 GET /en_US/all.js HTTP/1.1 但是尝试删除#fbml=1,页面将不会显示类似Facebook的按钮。这里的机制是什么?哈希标记从不发送到服务器,但是Javascript可以通过location.hash访问它,或者在脚本标记中使用它时,访问标记的src属性 这很可能是负责它的代码: window.setTimeout(function
\fbml=1在
中做什么?(这是从中获得的类似Facebook的官方按钮代码)
另外,在《小提琴手》中,我看到它只是在做一个简单的动作
GET /en_US/all.js HTTP/1.1
但是尝试删除#fbml=1
,页面将不会显示类似Facebook的按钮。这里的机制是什么?哈希标记从不发送到服务器,但是Javascript可以通过location.hash
访问它,或者在脚本标记中使用它时,访问标记的src
属性
这很可能是负责它的代码:
window.setTimeout(function () {
var a = /(connect.facebook.net|facebook.com\/assets.php).*?#(.*)/;
FB.Array.forEach(document.getElementsByTagName('script'), function (d) {
if (d.src) {
var b = a.exec(d.src);
if (b) {
var c = FB.QS.decode(b[2]);
FB.Array.forEach(c, function (f, e) {
if (f == '0') c[e] = 0;
});
FB.init(c);
}
}
});
if (window.fbAsyncInit && !window.fbAsyncInit.hasRun) {
window.fbAsyncInit.hasRun = true;
fbAsyncInit();
}
}, 0);
这是使用
标记的src
属性来完成的。。。第二种方式……实际上,在本例中,location.hash
将无法使用它,因为浏览器上的URL没有hash,只有Javascript路径有它。这就是为什么它是使用
标记的src
完成的。。。这可能是访问它的唯一方式?实际上,这是一种将参数传递给.js
的智能方法。文件它可以使用all.js?foo=1
,但这样做会使服务器更有效,因为每次使用不同的参数时,服务器都需要再次提供该文件,即使它以前是作为all.js
加载的,并且内容都是相同的。