我已经看到了几个类似于我所遇到的问题,但我见过的解决方案都没有,包括Facebook lint工具。我的Facebook生成的代码以window.location的escape()为模,目前已被注释掉,并且几乎是一个简单的JavaScript包括:
document.write('<iframe src="http://www.facebook.com/plugins/like.php?app_id=142676242492854&href=' + escape(url) + '&send=false&layout=standard&width=450&show_faces=true&action=like&colorscheme=light&font=verdana&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:167px; height:40px;" allowTransparency="true"></iframe>');
或另一个基于lint工具:
document.write('<iframe src="http://www.facebook.com/plugins/like.php?href=' + escape(url) + " scrolling="no" frameborder="0" style="height: 62px; width: 100%" allowTransparency="true"></iframe>');
有几个调整的东西,我只想要一个裸按钮,没有关于点击按钮的朋友的注释,但我还没有摆弄它;我有另一个问题。
如果点击按钮,它会暂时改变并表示你喜欢它;但按钮的背景不会从浅灰色变为蓝色。此外,它不会影响页面重新加载。
是否有代码可以/应该替换上面的JavaScript以包含一个工作的Like按钮?该网站位于http://JonathansCorner.com,代码行是(注释掉)整个网站的JavaScript包含。
答案 0 :(得分:4)
document.write是邪恶的,不要使用它。
如果它是一个静态页面(您的网站似乎是这样),那么只需在您想要它的HTML正文中添加iframe。
如果你真的想在JS中添加按钮客户端,请使用JS SDK(https://developers.facebook.com/docs/reference/javascript)并添加如下按钮:
var dynLike = document.createElement('fb:like');
dynLike.setAttribute('href', myEncodedURL);
dynLike.setAttribute('send', 'false');
dynLike.setAttribute('width', '450');
dynLike.setAttribute('show_faces', 'false');
document.body.appendChild(dynLike); // Or wherever you want it
FB.XFBML.parse();