【问题标题】:Twitter Web Intent Callbacks not working in IETwitter Web Intent 回调在 IE 中不起作用
【发布时间】:2014-01-24 07:11:04
【问题描述】:

我一直试图在用户完成推文后让回调工作。除了 Internet Explorer(11、10、9 或 8)之外,所有浏览器都运行良好。 IE 在控制台中不显示任何内容,回调也不会触发。

有人有解决办法吗?这是一个简单的例子来说明问题(jsfiddle):

<!DOCTYPE html>
<html lang="en">
<head>
 <script src="//platform.twitter.com/widgets.js" type="text/javascript"></script>
</head>
<body>
 <a href="https://twitter.com/intent/tweet?&text=Test%20Message">Testing</a>

 <script>
  twttr.ready(function (twttr) {
    twttr.events.bind('tweet', function(event) {alert('twitter click');});
   });
 </script>
</body>
</html>

【问题讨论】:

  • 有没有看到这个话题:dev.twitter.com/discussions/3102
  • 是的,但没有解决方案。有人提到了 DOCTYPE,但我还没有找到有效的值。
  • 我在这里测试过 jsfiddle.net/n8ueF IE 也不会为我触发事件 :(
  • 我猜这是 IE 中的错误。如果您单击推文链接,则会打开弹出窗口。然后在不关闭以前的弹出窗口的情况下重新单击此链接,打开一个新的弹出窗口。如果在新的弹出窗口中发送消息,则触发 tweet 事件。在所有情况下,第一个弹出窗口似乎都不会触发事件
  • 抱歉忘记添加一个jsfiddle来说明它。看看你是否点击了tweet1,然后在没有关闭弹出窗口的情况下点击tweet2并在popup2中发送消息,tweet事件被触发:jsfiddle.net/DrEYL我目前不知道有什么解决方法

标签: javascript twitter


【解决方案1】:

这是由于在 IE 中的窗口之间发送数据时破坏了 postMessage 功能。 IE 从 IE8 开始支持 postMessage 到 iframe,但不在主窗口和弹出窗口之间,这与其他支持两者的主流浏览器不同。

参考:http://blogs.msdn.com/b/ieinternals/archive/2009/09/16/bugs-in-ie8-support-for-html5-postmessage-sessionstorage-and-localstorage.aspx

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 2012-01-14
    • 2013-07-09
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多