Twitter分享按钮显示空白页面。为什么?

时间:2015-08-11 04:13:36

标签: javascript html5 css3

我想在博文上分享我的推特按钮。它在20个中的18个帖子中工作正常。只有2个帖子有问题。单击按钮时出现空白窗口,没有文本,URL和通过等...

网址

  1. National Tour Announced For Disney’s The Little Mermaid
  2. MLB Venues – How A Team’s Form Is Effecting Ticket Prices At Their Homes
  3. 我的代码是好还是这里发生了什么?请帮助我。

    .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>

1 个答案:

答案 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()

顺便说一句

  1. tweet button documentation中不支持encodeURIComponent参数。 share就够了。
  2. url与长版document.title一样完美。
  3. 如果不使用,请不要创建额外的全局变量document.getElementsByTagName('title')[0].innerHTML
  4. 所以这可以简化为:

    tweetShare