当我已经在 Twitter Web 视图中时,如何使 https://twitter.com/intent/tweet?text= 在不让我再次登录的情况下工作



当我打开一个链接时,比如在Twitter应用程序中example.com/1.html,就会有一个网络视图。在那个1.html页面中,我有一个链接:

<a href="https://twitter.com/intent/tweet?text=hello">Tweet</a>

点击该链接,Twitter将指导我发布这条推文。

但是,如果链接是由window.location.href="https://twitter.com/intent/tweet?text=hello"打开的,那么Twitter会要求我在网络视图中再次登录,这很奇怪,因为我已经登录了。

所以我想这是window.location.href问题,所以我尝试了另一种方法:

Object.assign(document.createElement('a'), { target: '_blank', href: $b.attr('https://twitter.com/intent/tweet?text=hello')}).click();

这一次,click()扳机永远不会触发。

那么,我不可能用纯 JavaScript 调用推文操作吗?

> 我注意到的是href属性中的$b.attr(<url>)应该是这样的:href: '<url>'. 对我来说,这看起来像jQuery语法,它说,"获取元素$b中的属性url的值。

如果你有一个<element href="<url>" url="<url>"><element/>"的元素,它会是$b.attr("href")$b.attr("url")

我认为这应该可以解决您的问题。

我不知道你是想让用户点击打开推文,还是想自动点击他们。 因为这就是.click()函数的作用,是模拟对元素的单击。

如果您希望用户单击,请删除.click()

如果要在不单击的情况下自动打开,请使用window.open('<url>')

也就是说,如果你真的想要anchor元素,你可以像这样执行一个点击:

var body = document.getElementsByTagName("BODY")[0];
var $b = $("#link"); // has an attribute of 'url' with the twitter link
var a = Object.assign(document.createElement('a'), { target: "_blank", innerHTML: "Tweet", href: $b.attr('url')})
body.appendChild(a);
a.click();

最新更新