Twitter widgets.js抛出JavaScript错误;预期标识符“;关于IE8

Twitter widgets.js抛出JavaScript错误;预期标识符“;关于IE8,javascript,twitter,internet-explorer-8,twitter-widget,Javascript,Twitter,Internet Explorer 8,Twitter Widget,在Internet Explorer 8(IE8)上运行Twitter For Web widgets.js时,有人遇到JavaScript错误吗? 如果是这样,你知道如何解决这个问题,或者如何优雅地处理它吗 代码 只需添加加载widgets.js文件的这段代码,就会在IE8上抛出一个错误: <script> window.twttr = (function (d, s, id) { var t, js, fjs = d.getElementsByTagName(s)[0];

在Internet Explorer 8(IE8)上运行Twitter For Web widgets.js时,有人遇到JavaScript错误吗? 如果是这样,你知道如何解决这个问题,或者如何优雅地处理它吗

代码 只需添加加载widgets.js文件的这段代码,就会在IE8上抛出一个错误:

<script>
window.twttr = (function (d, s, id) {
  var t, js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src= "https://platform.twitter.com/widgets.js";
  fjs.parentNode.insertBefore(js, fjs);
  return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
}(document, "script", "twitter-wjs"));
</script>

window.twttr=(函数(d,s,id){
var t,js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=”https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
return window.twttr | |(t={ue:[],ready:function(f){t.e.push(f)});
}(文件,“脚本”、“推特wjs”);
我从以下网站获得了这段代码:

IE8中的错误

网页错误详细信息

用户代理:Mozilla/4.0(兼容;MSIE8.0;WindowsNT6.1;WOW64; Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E)时间戳:2015年1月29日星期四00:54:28 UTC

消息:脚本错误行:0字符:0代码:0 URI:

这没有什么帮助,但在开发人员工具的脚本下,我得到了以下消息:

(十) 预期标识符widgets.js,第1行字符29036

我还调查发现,Twitter在去年(2014年)停止了对IE7的全面支持,并在2015年1月初停止了对IE8的支持。我不确定这是否是他们的widgets.js导致错误的原因,但我仍然需要找出加载此脚本而不在IE8上抛出错误的最佳方法。谢谢大家!

找到了解决方案

在widgets.js中,有一个名为“delete”的方法(第364行)

这个方法在第1364行调用

l.delete(["callbacks", t.callbackName])
删除在中。因此,它会导致“预期标识符”错误

首先,将widgets.js带到您自己的主机

js.src= "http://www.yourdomain.com/widgets.js";
在这里更改您的域

在widgets.js中该步骤之后或之前,必须更改“删除” 方法名称和调用方行。

有人试过这个吗? 如何在页面中添加无脂肪社交按钮


“大多数社交网络都提供基于URL的共享按钮,这些按钮对页面的影响很小,也不需要第三方JavaScript。这些按钮虽然没有得到广泛宣传,但使用起来并不困难。”

一个想法是这样测试IE8:如果是IE8,就运行脚本。好吧,已经过了“1月初”我想ie8已经不受支持了……伊尔克,你能分享一下更新后的widget.js代码吗?我们必须把它放在本地,这会很有帮助。古拉夫,只要用一些不同的东西来更改“delete”方法的名称就行了。利克,我已经更改了,但它仍然不起作用:'(你能在js fiddle上共享widget.js吗,我可以调查,它可能会被twitter.liker更新,我只需从[twitter widget](platform.twitter.com/widgets.js)下载js文件,并根据建议更改删除方法名称,但它仍然不工作,也没有错误。你见过这个twitter社区吗
js.src= "http://www.yourdomain.com/widgets.js";