押入れ起業

ガレージベンチャー、ならぬ。サボっていましたが再開します。

JavaScriptでwindow.openする自作ツイートボタンでポップアップが2つ出る問題の馬鹿みたいに簡単な解決方法

      2015/04/12

ウェブサイトのデザインによる理由でTwitter公式のツイートボタンを使わずに、公式同様の小画面がポップアップするJavaScriptを仕込んだリンクを作ったんです。

<a href="https://twitter.com/intent/tweet?text=何やかんや" onclick="popup(this.href); return false;">ツイートする</a>

んでクリックすると、ツイートのポップアップウィンドウが2つ同時に出現してしまう。いったい何故だ…。

適当に検索したところ、2年前に同様の現象を指摘していたブログを発見。

  • JavaScript:「return false;」で「href」を無効化できずに2つウィンドウが開いてしまった原因
  • こちらによると、Twitter公式のJavaScriptであるwidgets.jsがOnClickイベントに何かを仕込んでいるため、一度のクリックで両方のポップアップが発動してしまうとのこと。

    なるほど、widgets.js側がonClickに仕込んでるなら、こっちでは何も設定しないでもいいんじゃね?ってことで試しにonClickの中身を空っぽにしてみた。

    <a href="https://twitter.com/intent/tweet?text=何やかんや" onclick="">ツイートする</a>
    

    結果は成功!ポップアップウィンドウが1つだけ出て、そこにはこちらの意図した内容が表示された。よっしゃー

    ちなみにJavaScriptの知識はほぼゼロです。勘でどうにかなったぜ。

     - JavaScript ,

    応援クリックお願いします:

    PC

    PC

    Message

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

      関連記事

    no image
    短縮URL作成サイトのブックマークレットJavaScriptが間違っていた

    ヤバい! よくわからないまま他のサイトのブックマークレットから類推してテキトーに …