次のことを行うコードを jQuery で作成しました。
- Facebook経由でつながる
- いいねボタンをクリック
Facebookで気に入ったかどうかを確認してコンテンツを表示し、気に入っていない場合は好きになるように依頼してください
<script> $('#loginfb').click( function() { FB.login(function(response) { if (response.authResponse) { var logstatus="logged in"; FB.api('/me', function(response) { console.log('Good to see you, ' + response.name + '.'); }); $('#loginfb').empty(); $('#loginfb').append('<p>Logged In to Facebook</p>'); console.log('Welcome! Fetching your information.... '); var url = 'http://facebook.com/bitslabo'; $('#fblikeblock').html('<div id="pleaselike">like!</div><fb:like id="fbLike" href="'+url+'" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>'); FB.XFBML.parse(document.getElementById('fblikeblock')); } else { console.log('User cancelled login or did not fully authorize.'); } },{perms:"friends_likes,user_likes"}); }); $('#getlogin').click( function() { FB.getLoginStatus(function(response) { var page_id = "[PAGE ID]"; if (response && response.authResponse) { var user_id = response.authResponse.userID; var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+" and uid="+user_id; FB.Data.query(fql_query).wait(function(rows) { if (rows.length == 1 && rows[0].uid == user_id) { console.log("LIKE"); $('#container_notlike').hide(); $('#container_like').show(); } else { console.log("NO LIKEY"); $('#container_like').hide(); $('#container_notlike').show(); } }); } else if (response.status === 'not_authorized') { // the user is logged in to Facebook, // but has not authenticated your app alert('Please click "Log in to Facebook"'); } else { alert('Please click "Log in to Facebook"'); // the user isn't logged in to Facebook. } }); }); </script>
問題は、私が使用しているCMS(magento 1.5)にprototype.jsが全体にあり、jQueryがPrototypeをオーバーライドしてサイトのすべての機能を無効にするjQueryとPrototypeの競合があることです。
したがって、ここで 2 つの質問があると思います。
- jQuery スクリプトを実行し、プロトタイプ スクリプトに影響を与えないようにする方法は?
- 上で説明したのと同じことをプロトタイプで書くにはどうすればよいですか?
それが理にかなっていることを願っています!前もって感謝します!