4

有人在 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>

我在以下网址得到了这个片段:https ://dev.twitter.com/web/javascript/loading

IE8 中的错误

网页错误详情

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

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

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

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

4

2 回答 2

1

找到了解决办法,

在 widgets.js 中,有一个名为“delete”的方法(第 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])

删除在保留字列表中。所以它会导致“预期标识符”错误。

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

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

在此处更改为您的域。

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

于 2015-02-02T17:33:05.783 回答
0

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

“大多数社交网络都提供基于 URL 的共享按钮,这些按钮不会增加页面的权重,并且不需要第三方 JavaScript。它们没有那么广为人知,但使用起来并不难。”

于 2015-06-05T08:22:32.327 回答