実現したいこと
Twitterやfacebookのシェアボタンをサイトに設置しました.
それらのボタンをクリックしたときに共通して実行したい動作があるのですが,どのように実装したらよいでしょうか.
Twitterのボタンを押しても,Facebookのボタンを押しても,同じ処理が実行されるというものです.
試したこと
親要素divにonclick属性を追加
Twitterやfacebookのボタンをdivタグで囲い,そのdivタグにonclickで動作を追加したのですが,ボタンを押したときにonclickの処理が実行されません.
ボタンの少し外側をクリックするとonclickの処理が実行されます.
実際のコードは次のような感じです.
html
1<div id="snsbtns" onclick="alert('foooooooo')"> <!-- ←← 実行したい処理 --> 2 <div class="snsbtn"> 3 <!-- Twitterのボタン --> 4 <a href="https://twitter.com/share?ref_src=twsrc%5Etfw" class="twitter-share-button" 5 data-show-count="false">Tweet</a> 6 <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 7 </div> 8 9 <div class="snsbtn"> 10 <!-- facebookのボタン --> 11 <div id="fb-root"></div> 12 <script async defer crossorigin="anonymous" src="https://connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v8.0" nonce="OooKwPjc"></script> 13 <div class="fb-share-button" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button" data-size="small"> 14 <a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&src=sdkpreparse" class="fb-xfbml-parse-ignore">シェア</a> 15 </div> 16 </div> 17</div>
JavaScriptでonclick属性をiframeに追加
また,TwitterやfacebookのボタンはJavaScriptで生成しているみたいなので,
生成されたものを見ると,次のようになっていました.
HTML
1<!-- TwitterのJavaScriptで生成されたもの --> 2<iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" allowfullscreen="true" 3 class="twitter-share-button twitter-share-button-rendered twitter-tweet-button" 4 style="position: static; visibility: visible; width: 62px; height: 20px;" title="Twitter Tweet Button" 5 src="https://platform.twitter.com/widgets/tweet_button.2d7d9a6d04538bf11c7b23641e75738c.en.html#dnt=false&id=twitter-widget-0&lang=en&original_referer=file%3A%2F%2F%2FC%3A%2FUsers%2Ftaihara%2FDocuments%2Fjt-development%2Findex.html&size=m&time=1599451037840&type=share&url=file%3A%2F%2F%2FC%3A%2FUsers%2Ftaihara%2FDocuments%2Fjt-development%2Findex.html"> 6</iframe>
どうやら,iframeでその中にボタンが生成されているみたいです.
そこで,JavaScriptを使ってiframeのonclick要素を操作するコードを書いてみたのですが,こちらも動作しません.
HTML
1<script> 2 document.getElementsByTagName('iframe')[0].onclick = function() { 3 alert('foooooooo'); 4 }; 5 document.getElementsByTagName('iframe')[1].onclick = function() { 6 alert('foooooooo'); 7 }; 8</script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/07 04:41
2020/09/07 05:41
2020/09/07 05:49