Javascript 创建tweet按钮而不打开新窗口

Javascript 创建tweet按钮而不打开新窗口,javascript,jquery,iframe,twitter,Javascript,Jquery,Iframe,Twitter,我正在寻找添加一个“推特这个”按钮到一个网站。很简单,对吧?问题是,该网站是在一个嵌入式平台上运行的,该平台并不特别处理弹出窗口,所以我尝试在页面内完成所有操作 我能够成功地创建我的tweet按钮,将onClick处理程序附加到它,并为相关内容构建一个合适的twitter.com/share URL。当我用window.open在新窗口中打开该URL时,一切正常。但是,如果我尝试在iframe中打开URL,则框架内不会加载任何内容。即使加载到iframe中也会以同样的方式失败。然而,加载谷歌或任

我正在寻找添加一个“推特这个”按钮到一个网站。很简单,对吧?问题是,该网站是在一个嵌入式平台上运行的,该平台并不特别处理弹出窗口,所以我尝试在页面内完成所有操作

我能够成功地创建我的tweet按钮,将onClick处理程序附加到它,并为相关内容构建一个合适的twitter.com/share URL。当我用window.open在新窗口中打开该URL时,一切正常。但是,如果我尝试在iframe中打开URL,则框架内不会加载任何内容。即使加载到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编写自己的auth管道?我不需要他们的API中的任何东西,只需要让用户推特到他们自己的帐户。

你能简单地重定向推特共享URL吗?我猜他们在打开iframe中的窗口时要小心,以防止恶意网站在用户帐户中发送推文,而不给用户机会先确认其发送此推文的意图。

推特(如堆栈溢出)可能正在使用一些Javascript来确保它们不会出现在iframe中:

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

我最近遇到了类似的事情,结果在没有iFrame元素的情况下重新运行了我的部分应用程序。

在twitter上获得一个开发者帐户,事情就变得简单了:)

你说的window.open可以在新窗口中弹出url,但你尝试过将其弹出到父框架中吗

twtWindow=window.open([url],'_parent',[specs])

@yuval不幸的是,twitter url指向的页面在响应中设置了X-FRAME-OPTIONS:SAMEORIGIN标题。这不是Javascript检查。浏览器只会在看到页眉后拒绝呈现页面。这样做是为了防止攻击,通常是为了窃取用户密码

因此,您唯一的其他选择就是使用
window.location.href=url
重定向当前页面