0

我正在尝试重现 facebook 的推荐按钮,尤其是出现在主机页面上的那种工具提示。

可能这超出了我的能力范围,但我想了解 FB 是如何做到的。

他们使用 Recommend 按钮实现了 iframe。当你点击时,你会得到一种工具提示(简单的 div),它会越过主机页面。

我正在尝试做同样的事情,但当然,我不能在 iframe 之外显示内容!

这是我的代码(hostingdomain.org)的一些示例:

<script type="text/javascript">
(function() { 
            id_marchand = 'daL/RqzZcfqc.'; 
            var tyd = document.createElement('script');
            tyd.type = 'text/javascript';
            tyd.async = true; 
            tyd.src = 'http://mydomain.fr/tyd//module/pro_mod.js'; 
            var s = document.getElementsByTagName('script')[0]; 
            s.parentNode.insertBefore(tyd, s);})
();</script>

此脚本的目标是读取主机页面上的一些内容,然后通过 postMessage 将其发送到该 iframe :

<iframe src="http://multipress.fr/tyd//module/pro_mod.php"
height="50px" width="150px" 
name="tyd_frame" id="tyd_frame" style="border:1px solid black;" 
onload="start_tyd();"></iframe>

iframe 我收到消息内容然后对其应用功能。我使用了 iframe,因为我需要从 mydomain.fr 读取 cookie 来执行我的东西。

现在我想显示一个工具提示(或extradiv)以向用户确认它已完成。但我不能让任何东西出现在 iframe 中……出于安全原因,我敢肯定,但 Facebook 会这样做!

所以我正在研究的解决方案是再次使用 iframe 中的 postMessage 将内容发送回 pro_mod.js,这可以在主机页面上工作,但我不知道如何做到这一点。

谢谢你的帮助 !

4

1 回答 1

0

我在那里找到了解决方案:

http://benalman.com/projects/jquery-postmessage-plugin/

这是一个 jquery 插件,我可以在 myiframe 中调用它并允许向父主机发送消息。

因为我无法在主机中实现 jquery,所以我放了一个简单的 addeventlistener 然后我明白了!所以现在我可以在父级中创建“工具提示”div!

一切都很好 !

于 2012-11-22T20:25:02.090 回答