簡體   English   中英

目標父div包含iframe中的iframe

[英]Target parent div containing iframe from iframe

所以基本上我有這樣的東西

<div class="iframe-holder">
    <span></span>
    <iframe src="iframe.html" width="200" height="200"
</div>
<div class="iframe-holder">
    <span></span>
    <iframe src="iframe.html" width="200" height="200"
</div>
<div class="iframe-holder">
    <span></span>
    <iframe src="iframe.html" width="200" height="200"
</div>
<script>
    function where_am_i(iframe_parent_div,msg){
        $(iframe_parent_div).find('span').html(msg);
    }
</script>   

然后在我的iframe-holder.html我基本上有這個

<a href="#" id="msg">Show Message In Parent Div</a>
<script>
    //i want to basically imp
    $('msg').click(function(event){
        event.preventDefault();
        var iframe_parent_div=???;//how do I get this?
        parent.where_am_i(iframe_parent_div,'This is where this iframe is');
    });     
</script>

所以基本上我的問題是如何定位iframe實例的父div(div.iframe-holder)我點擊“顯示消息”按鈕? 這甚至可能嗎?

我知道我可以通過源發送一個帶索引的變量if iframe.html?index = 0表示第一個iframe.html?index = 1表示第二個等等但是這對我來說不是一個可行的解決方案,因為在iframe會有很多導航到不同的頁面,所以傳遞到所有頁面索引不是一個選項。

做:

var iframe_parent_div = window.frameElement ? window.frameElement.parentNode : null;

您可以在父文檔中編寫一個函數,該函數將iframe的名稱作為參數,然后從那里獲取iframe-holder div。 這樣的事情應該足夠了:

父文檔中的代碼

var findIframeHolder = function (name) {
    var $frame = $('iframe[name="' + name + '"]');
    var $frameParent = $frame.parent();
};

IFrame中用於調用父函數的代碼

parent.findIframeHolder(window.name);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM