Twitter widgets.js抛出JavaScript错误"预期的标识符"在IE8上

时间:2015-01-29 00:53:56

标签: javascript twitter internet-explorer-8 twitter-widget

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

CODE 只需添加这个加载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>

我的代码段为:https://dev.twitter.com/web/javascript/loading

IE8中的错误

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64;   三叉戟/ 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:   https://platform.twitter.com/widgets.js

这没有帮助,但在开发人员工具中,在脚本下我收到以下消息:

  

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

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

2 个答案:

答案 0 :(得分:1)

找到解决方案,

在widgets.js中,有一个名称为&#34; delete&#34; (第364行)

"delete": function(t) {
     var e = i(t),
     n = this.get(e.slice(0, -1));
     n && delete n[e.slice(-1)]
 },

此方法调用第1364行

l.delete(["callbacks", t.callbackName])

删除位于Reserved Words list。因此它会导致&#34;预期的标识符&#34;错误。

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

js.src= "http://www.yourdomain.com/widgets.js";

使用您的域名进行更改。

  

在该步骤之前或之前在widgets.js中,必须更改&#34;删除&#34;   方法名称和来电者。

答案 1 :(得分:0)

有人试过吗? 如何为您的页面添加无脂社交按钮 http://www.sitepoint.com/social-media-button-links/

“大多数社交网络提供基于URL的共享按钮,这些按钮对页面的重要性不大,不需要第三方JavaScript。它们不是很好地宣传,但它们并不难用。”