我正在使用普通的iframe代码,而不是xfbml(正在添加片段以便恢复为基本的iframe)。
<iframe scrolling="no" frameborder="0" style="border: medium none; overflow: hidden; width: 92px; height: 22px; position:absolute;top:3px;left:180px;" allowtransparency="true" src="http://www.facebook.com/plugins/like.php?href=http://www.xxxxwebsitexxxx.co.uk&layout=button_count&show_faces=false&width=92&action=like&font=arial&colorscheme=light"></iframe>
按钮显示正确,但在firefox中单击它时,我收到以下错误:
this.event is undefined
http://static.ak.fbcdn.net/rsrc.php/v1/yW/r/MrPDat_Xp7Z.js (line 31)
我认为违规行是这样的:
__d("DOMEvent",["copyProperties"],function(a,b,c,d,e,f){var g=b("copyProperties");function h(i){this.event=i||window.event;this.target=this.event.target||this.event.srcElement;}g(h.prototype,{preventDefault:function(){var i=this.event;i.preventDefault?i.preventDefault():i.returnValue=false;return this;},stopPropagation:function(){var i=this.event;i.stopPropagation?i.stopPropagation():i.cancelBubble=true;return this;},kill:function(){this.stopPropagation().preventDefault();return this;}});e.exports=h;});
__ d(“DOMEventListener”,[],function(a,b,c,d,e,f){var g,h; if(window.addEventListener){g = function(j,k,l){ j.addEventListener(k,l,false);}; h = function(j,k,l){j.removeEventListener(k,l,false);};} else if(window.attachEvent){g = function( J,K,L){j.attachEvent( 'ON' + K,L);}; H =函数(J,K,L){j.detachEvent( 'ON' + K,L);};}变种i = {add:function(j,k,l){g(j,k,l); return {remove:function(){h(j,k,l); j = null;}};},删除:H}; e.exports = I;});
这是一个已知问题,我在普通网站上尝试了相同的代码,并禁用所有附加组件以确保它不是兼容性问题。
我在mac上使用firefox 12.0。
答案 0 :(得分:0)
我面临同样的问题,但我没有做过任何改编,所以我觉得这是facebook的错,因为这非常简单(只需从FB复制并粘贴到你的网站上),它适用于IE,Chrome和Safari(到目前为止)我试过了) 但如果您已经登录FB,则没有这样的问题。让我们联系FB让他们知道。
答案 1 :(得分:0)
我可以说的是,当我首先登录Facebook时,我在Firefox中没有这个问题,所以在尝试从Facebook加载登录弹出窗口时必须出错?我打赌Facebook很快就会解决这个问题,因为它会影响使用iframe按钮的iframe版本的任何网站。
编辑:问题似乎是由Facebook修复的,但到目前为止,问题又回来了。也许Facebook已经改变了其他东西,导致这个问题再次发生?
答案 2 :(得分:0)
截至2012年5月3日22:14(格林威治标准时间+1),Facebook似乎已经解决了这个问题。
我检查了iframe实现拉入的javascript,并且代码行已被更改。
当我现在点击facebook like按钮时,弹出窗口就会显示出来。