我試圖抓住一個iFrame(在fancybox)中的位置,當用戶單擊標題區域中的按鈕時。它位於不同的域中,因此我使用postMessage,並且我希望它獲取完整的URL(例如「www.example.com?pid=12345」),因此當fancybox使用「嘗試搜索」按鈕關閉時,我的網站然後可以搜索pid「12345」。Fancybox/iFrame使用postMessage的位置(跨域)
片段...
<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'
});
});
這將提醒 「喂?」消息確定,但e.origin返回父域(不是iFrame的url)。如果我postMessage(this.location,'*')它是未定義的。
任何人都可以幫忙嗎?
你是怎麼做到的?我有同樣的問題...仍然沒有解決方案...我希望你能發佈工作解決方案!提前致謝 – menardmam 2014-11-22 18:58:38