0

我正在使用一些 facebook 代码在我的页面上显示一个喜欢的按钮。我在我的 _SiteLayout.cshtml 页面中有它。起初它只是花花公子。我在这个网站上也有同样的代码:www.bigsurgarrapata.com

但是现在我使用 LinkShare Webhelper 来显示一堆不同的社交网络图标,并且不需要我当前站点的独立 facebook 代码。此外,由于某种原因,它无论如何都停止了工作。但是,如果我删除它,我引用 _SiteLayout.cshtml 的页面结构将全部转到达拉斯(或克利夫兰,YMMV)。这是在上下文中(在头部和身体之间):

    </head>
        <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/en_US/all.js#xfbml=1";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<body>

为什么删除它会改变我页面的内容?

4

3 回答 3

1

//connect.facebook.net/en_US/all.js#xfbml=1 - 这是您的 JS 中的链接。

它确实向您展示了 javascript,因此它似乎是从那里运行的。

于 2013-05-31T13:36:59.320 回答
1

如果那是在头部和身体之间,它是在一个无效的位置。它操纵文档的结构(fjs.parentNode.insertBefore),可能由于其位置而以无效的方式。其效果在不同的浏览器中可能会有所不同,并且会做出意想不到的事情。浏览器可能会尝试补偿损坏的代码或触发类似怪癖模式的东西,使用不同的规则来处理内容。如果对无效代码进行了补偿,使其看起来正确,那么当您删除无效代码时,任何使它看起来正确的东西现在都可能使它看起来错误。

于 2013-05-31T13:57:08.660 回答
1

在 bigsurgarrapata 页面上,在开始的 body 标记之后有它,这是 facebook 推荐的:

“在您的页面上包含一次 JavaScript SDK,最好是在开始标记之后。”

-通过http://developers.facebook.com/docs/reference/plugins/like/

在这里,你把它放在</head>和之间<body>。也许尝试将其移动到<body>元素中?

于 2013-05-31T13:38:39.883 回答