我想在博文上分享我的推特按钮。它在20个中的18个帖子中工作正常。只有2个帖子有问题。单击按钮时出现空白窗口,没有文本,URL和通过等...
网址
我的代码是好还是这里发生了什么?请帮助我。
.tweet{ margin:0px auto; width:200px; text-align:center;}
.tweet a{ display:inline-block; line-height:50px; color:#f00; text-decoration:none; background:#ccc; border-radius:5px; padding:0px 20px;}
<div class="tweet">
<a title="Twitter" href="//twitter.com/intent/tweet?share=" onclick="tweetShare=window.open(this.href+escape(window.location)+'&text='+escape(document.getElementsByTagName('title')[0].innerHTML)+'&url='+location.href+'&via=ExciteEventstix','tweetShare','toolbar=no,status=no,width=640,height=400,scrollbars=no'); return false;"
target="_blank">Twitter</a></div>
答案 0 :(得分:3)
查看Chrome Developer控制台,您会发现twitter服务器返回了400错误。那是因为您没有正确编码网址(尤其是#include <vector>
#include <iostream>
#include <string>
using namespace std;
int main() {
int n = 0, x = 0, y = 0, z = 0, value = 0;
vector<int> vk;
vk.reserve(100000);
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> value;
vk.push_back(value);
}
cin >> x >> y >> z;
vk.erase(vk.begin() + x-1);
vk.erase(vk.begin() + y-1, vk.begin() + z-1);
cout << vk.size() << endl;
for (int i = 0; i < vk.size(); i++)
cout << vk[i] << " ";
cout << endl;
return 0;
}
参数)。
请注意title
后面的%u2019
字符。它是一个编码的unicode字符。实际上Twitter希望你把它编码为UTF-8。
Disney
解决方案是使用text=National%20Tour%20Announced%20for%20Disney%u2019s%20The%20Little%20Mermaid
代替encodeURIComponent()
。这段代码应该可以正常工作:
escape()
无论如何<div class="tweet">
<a title="Twitter" href="//twitter.com/intent/tweet?share=" onclick="tweetShare=window.open(this.href+encodeURIComponent(window.location)+'&text='+encodeURIComponent(document.getElementsByTagName('title')[0].innerHTML)+'&url='+location.href+'&via=ExciteEventstix','tweetShare','toolbar=no,status=no,width=640,height=400,scrollbars=no'); return false;"
target="_blank">Twitter</a></div>
为deprecated所以请改为escape()
。
顺便说一句
encodeURIComponent
参数。 share
就够了。url
与长版document.title
一样完美。document.getElementsByTagName('title')[0].innerHTML
。所以这可以简化为:
tweetShare