为什么这个Facebook代码不再起作用,而是将我的页面粘在一起?

时间:2013-05-31 13:34:23

标签: jquery html asp.net facebook

我正在使用一些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>

为什么删除这会改变我的网页内容?

3 个答案:

答案 0 :(得分:1)

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

它确实显示了javascript,所以它似乎从那里开始运行。

答案 1 :(得分:1)

在bigsurgarrapata页面上,您可以在打开身体标签之后使用它,这是facebook建议的:

  

“在您的网页上包含一次JavaScript SDK,理想情况下就在   打开标签。“

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

在这里,您将它放在</head><body>之间。也许尝试将其移入<body>元素?

答案 2 :(得分:1)

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