我想在用户点击我们的页面时触发一个脚本,但我的脚本没有错误,根本没有结果。不确定我写错了哪一件。
<body><div id="fb-root"></div>
<script>
window.fbAsyncInit = function(){
FB.init({
appId : '213893228799718',
status : true,
xfbml : true
});
FB.Event.subscribe('edge.create', function(response) {
alert('You liked the URL: ' + response);
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<?php
$a = '<iframe src="http://www.facebook.com/plugins/like.php?href='.urlencode('https://www.facebook.com/MyFanPage').'&width&layout=button_count&action=like&show_faces=false&share=false&height=21&appId=213893228799718" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px;" allowTransparency="true"></iframe>';
echo $a;
?>
</body>
答案 0 :(得分:0)
我想原因是你正在使用Like插件“iFrame方式”。事件侦听器无法侦听在其他文档上下文中发生的事件。
试试这样:
<html>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function(){
FB.init({
appId : '213893228799718',
status : true,
xfbml : true
});
FB.Event.subscribe('edge.create', function(response) {
alert('You liked the URL: ' + response);
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=213893228799718";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-like" data-href="https://www.facebook.com/MyFanPage" data-layout="button" data-action="like" data-show-faces="true" data-share="true"></div>
</body>
</html>
答案 1 :(得分:0)
如果您仔细阅读documentation,则说 -
该按钮的XFBML和HTML5版本允许您通过FB.Event.subscribe订阅Facebook SDK for JavaScript中的
'edge.create'
事件。只要点击一个按钮,就会触发此JavaScript事件。
你正在使用IFrame版本,这就是它无法正常工作的原因。
此外,它不适用于localhost
中的任何版本,可能是出于某些安全原因。
您可以使用 HTML5 版本 -
将您的js.src=...
行替换为:
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=213893228799718";
和
$a = '<iframe sr....
echo $a;
与
<div class="fb-like" data-href="https://www.facebook.com/MyFanPage" data-layout="button" data-action="like" data-show-faces="true" data-share="true"></div>
答案 2 :(得分:0)
Sahil写道,你需要使用 XFBML 标签
HTML:
<fb:like href="{Herf}" width="450"></fb:like>
JS:
window.fbAsyncInit = function() {
FB.init({
appId: '{appID}',
status: true,
xfbml: true
});
// FB event listener
FB.Event.subscribe('edge.create', function (url) {
console.log('You liked the URL: ' + url);
});
};
这是一个demo