ユーザーがタイトル領域のボタンをクリックしたときに、(ファンシーボックス内の)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、'*')の場合、それは未定義です。
誰か助けてもらえますか?