尝试在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上引发错误。谢谢!
答案 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。它们不是很好地宣传,但它们并不难用。”