javascript - 在不打开新窗口的情况下创建推文按钮

标签 javascript jquery iframe twitter

我想在网站上添加一个“发推文”按钮。很简单,对吧?问题是该站点旨在运行在不特别处理弹出窗口的嵌入式平台上,因此我试图在页面内完成所有操作。

我能够成功地创建我的推文按钮,将一个 onClick 处理程序附加到它,并为相关内容构建一个正确的 twitter.com/share URL。当我使用 window.open 在新窗口中打开该 URL 时,一切正常。但是,如果我尝试在 iframe 中打开 URL,框架内不会加载任何内容。连载http://twitter.com进入 iframe 以同样的方式失败。然而,加载谷歌或任何其他网站似乎工作正常。

对我在这里缺少的东西有什么想法吗?谢谢! --扎克

编辑: 是的,他们在加载时检测 iframe 并清空页面:

if (window.top !== window.self) {
    document.write = "";
    window.top.location = window.self.location; 
    setTimeout(function(){ document.body.innerHTML='';},1);
    window.self.onload=function(evt){document.body.innerHTML='';};

有什么合理的方法来解决这个问题,或者我是否坚持通过 oauth 编写自己的身份验证管道?我不需要他们的 API 中的任何东西,只需让用户向他们自己的帐户发送推文即可。

最佳答案

Twitter(如 Stack Overflow)可能正在使用一些 Javascript 来确保它们不会出现在 iFrame 中:

if(top!=self){
     //hates you
}

我最近遇到了类似的事情,最终在没有 iFrame 元素的情况下重新制作了我的应用程序的一部分。

关于javascript - 在不打开新窗口的情况下创建推文按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431656/

相关文章:

javascript - 在后台上下文中的脚本之间进行通信(后台脚本,浏览器操作,页面操作,选项页面等)

javascript - 将内容类型更改为 JSON 时,从数据库加载更多内容不起作用

javascript - jquery中如何获取按钮列表的索引

java - Jmeter:如何在单个请求中传递数组值?

javascript - 替换文本区域中的特定单词并突出显示更改?

html - 适用于Prestashop的自适应视频Youtube

javascript - Angular 项目架构

javascript - sibling 的 stopImmediatePropagation() 不工作

javascript - AJAX错误ERR_INSUFFICIENT_RESOURCES,如何避免

javascript - Safari iframe 可见性隐藏不起作用