3

ユーザーがタイトル領域のボタンをクリックしたときに、(ファンシーボックス内の)iFrameの場所を取得しようとしています。別のドメインにあるため、postMessageを使用しており、完全なURL( "www.example.com?pid=12345"など)を取得したいので、[Attempt Search]ボタンを使用してファンシーボックスを閉じると、その後、サイトはpid「12345」を検索できます。

切れ端...

<script type="text/javascript">
  window.addEventListener("message", function(e) {
    alert(e.data + " : " + e.origin + " : " + e.source);
  }, false);
</script>


<script type="text/javascript">
  $(document).ready(function() {
    $("a#codelookup").fancybox({
    'width' : 1050,
    'height' : '75%',
    'title' : '<p class="wrapbutton"><a href="javascript:;" onClick="postMessage(\'Hello?\', \'*\'); $.fancybox.close();">Attempt Search</a></p>',
    'titlePosition' : 'inside',
    'type' : 'iframe'
  });
});

これは「こんにちは?」に警告します メッセージはOKですが、e.originは親ドメイン(iFrameのURLではありません)を返します。そして、postMessage(this.location、'*')の場合、それは未定義です。

誰か助けてもらえますか?

4

2 に答える 2

1

それは不可能。セキュリティ上の理由から、別のドメインの iframe は、フレーム化されているページと通信できません。

于 2011-05-20T06:17:13.767 に答える
0

このライブラリを試しましたか?http://easyxdm.net/wp/

于 2011-05-20T02:16:32.553 に答える