什么是“#fbml=1”?在

#fbml=1

另外,在 Fiddler 中,我看到它只是做了 a

GET /en_US/all.js HTTP/1.1

但尝试删除 #fbml=1,页面将不会显示 Facebook像按钮。这里发生了什么机制?

What is the #fbml=1 doing in <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"> ? (this is the official Facebook Like button code obtained from http://developers.facebook.com/docs/reference/plugins/like/ )

Also, in Fiddler, I see it simply doing a

GET /en_US/all.js HTTP/1.1

But try to remove #fbml=1, and the page won't show the Facebook Like button. What is the mechanism going on here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情丝乱 2024-11-06 10:30:18

主题标签永远不会发送到服务器,但 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);

Hashtags are never sent to the server, but Javascript can access it via location.hash or, when it's used in a script tag, access the tag's src attribute.

This is most likely the code responsible for it:

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文