javascript - 跨域通信

标签 javascript cross-domain

我正在开发一个 iframe facebook 应用程序。

有时,我打开一个 facebook 好友对话框,我在上面放了一个 html 按钮,这样我就可以添加一些特定于我的应用程序的逻辑。

dialog = FB.ui({
                method:'fbml.dialog', 
                fbml: (
                    '<fb:request-form  target="_self" action="http://devel.home.net/facebook/?cmd=fb_submit_form" ' +
                        'method="post" invite="false" type="event" ' +
                        'content="Would you like to attend the '+fb.EVENT.displayName+' event? &lt;fb:req-choice url=\'http://www.facebook.com/event.php?eid='+fb.EVENT.details.fb_event.id+'\' label=\'Respond now\' /&gt;" >' + 
                        emails.join('') +
                        '<input type="hidden" fb_protected="true" name="event" value="'+fb.RESPONSE.id+'"/>' +
                        '<fb:multi-friend-selector email_invite="false" import_external_friends="false" exclude_ids="'+appUsers+'"'+
                            'condensed="true" showborder="false" bypass="cancel" actiontext="Invite your friends to join" /> '+

                        '<br/><fb:request-form-submit import_external_friends="false"/>' +
                    '</fb:request-form>' + 

                    '<div style="padding:10px">You are also sending '+fb.EMAILS.length+' invitations via email</div>' + 
                    '<button id="email-button">Send Emails</button>'
                    ),
                    size: { width:640, height:480}, width:640, height:480
                });


            $('.fb_dialog_iframe').find('IFRAME').load(function(){
                $(this).contents().find('#email-button').click(function(){
                    alert(1)
                });
            })

基本上,Facebook 会为对话框创建一个 iframe

所以我将一个 onload 处理程序附加到 iframe 并尝试访问该按钮

此时我收到权限被拒绝的错误

Permission denied for <http://devel.home.net> (document.domain=<http://home.net>) to get property HTMLDocument.ownerDocument from <https://www.facebook.com> (document.domain=<https://facebook.com>).

有什么解决方法吗?

谢谢

最佳答案

您不能执行跨站点脚本 (http://en.wikipedia.org/wiki/Cross-site_scripting),尤其是针对 Facebook 等网络。

关于javascript - 跨域通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761484/

相关文章:

Angular 2 不使用 CORS 保存我的身份验证 Cookie

javascript - 第三方JS可以访问第一方本地存储吗?

javascript - 如何将对象从 angularjs 传递到 spring Controller

javascript - 在客户端 Angularjs 上解压包含文件的文件夹作为内容

javascript - 如何确定回调函数的参数列表

Javascript查看另一个网站的html源代码

获取外部 JSON/XML 的 Javascript 小部件......如何?

javascript - 为什么我的系统会自动退出?

Javascript - onClick 返回点击的内容

javascript - 使用 JQuery 的子域 AJAX POST 请求的父级