当我打开一个链接时,比如在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();