这个问题真的让我感到害怕,我现在一直在谷歌搜索很长时间,而我却找不到答案。
问题是我的LIKE按钮无法在IE8(Internet Explorer 8)上呈现,但确实在Chrome上显示。
以下是测试页面的网址: http://78.69.194.141/vinn/test.php
如果你不使用IE8,你应该在“h5标题”下看到一个类似的按钮。
这是相关代码:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<link rel="stylesheet" type="text/css" href="fbstyle.css" />
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : '195633697119592',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelURL : 'http://78.69.194.141/vinn/channel.html', // channel.html file
oauth : true // enable OAuth 2.0
});
FB.UIServer.setLoadedNode = function(a,b){FB.UIServer._loadedNodes[a.id]=b;};
</script>
和按钮:
<fb:like layout="button_count"></fb:like>
我尝试了许多不同的方法,加载js异步和互联网上提到的所有其他方式但结果。
似乎这个问题只发生在我的服务器上,因为那些像按钮一样在其他地方工作,使用完全相同的代码(afaik)。
有没有人有任何线索?
答案 0 :(得分:4)
IE8抛出此错误:
SCRIPT5007:无法设置属性“innerHTML”的值:object为null或undefined all.js,第6行1252字符
它指的是facebook取代<fb:like>
标签的iframe,其中暗示按钮的设置选项错误,或者页面上存在无效的HTML,这会弄乱DOM,因此JavaScript可以找不到iframe。
http://validator.w3.org/check?verbose=1&uri=http%3a%2f%2f78.69.194.141%2fvinn%2ftest.php
一个好的开始就是放入<head>
和<body>
标签。
答案 1 :(得分:1)
您似乎将<head>
标记和<body>
元素混合在一起,而不是正确定义部分。您需要<head>
标记的<link>
部分(可能还有一些<script>
标记)和<body>
部分的<div>
部分。就目前而言,您的页面无效HTML。
答案 2 :(得分:0)
我有同样的问题。尝试将xmlns:fb="http://www.facebook.com/2008/fbml"
添加到<html>
标记,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">