2013-03-30 75 views
1

的iframe的我只是初學者使用Ajax和jQuery,但我試圖做到這一點:jQuery的AJAX - 調整其他頁面

  1. 頁installation.html包含ID = 「MyIframe」 IFRAME和src =」 step1.php「
  2. Page step1.php包含使用ajax調用step2.php的按鈕(成功)
  3. 頁面step2.php需要具有腳本,這將調整頁面installation.html的iframe的大小(因此step2的內容將適合)

到目前爲止,我的腳本看起來像這樣:

<script> 
    $(document).ready(function() { 
     $.ajax({ 
      url: 'installation.html', 
      type: 'get', 
      success: function(data) { 
       $(data).find('#MyIframe').height('1000px'); 
      }, 
     }); 
    }); 
    </script> 

但它不起作用。你能在這裏提出解決方案嗎?謝謝。

+0

你永遠不會在頁面中插入數據...只是從服務器檢索並操作它。需要使用衆多的jQuery插入方法之一,以便您可以看到它 – charlietfl

+0

,它應該如何看起來像? –

+0

'$('#someContainer')。html(data); $('#MyIframe')。height('1000px')'可以先更改高度,但我簡化了代碼的註釋blck – charlietfl

回答

3

默認情況下jQuery使用當前窗口的document作爲上下文 - 在你的情況下它是#MyIframe。在這種情況下,不存在具有#MyIframe id的元素。所以,你需要從窗口頂部的文檔訪問您的iframe:

<script> 
$(document).ready(function() { 
    $(window.top.document).find('#MyIframe').height('1000px'); 
}); 
</script> 
+0

什麼是 - window.top.document命令,爲什麼我沒有聽說過它。那就是它,它的工作原理!謝謝你,我欠你的人 –

+0

'window.top' - 當前窗口最上面的瀏覽器窗口(在你的案例'installation.html'中)。 'document'是該窗口的DOM。 – hazzik

1

從我所看到的,你的代碼是不是反映了你正在努力實現在所有的東西。 您給出的描述建議您具有以下結構。

installation.html

<iframe id="MyIframe" src="step1.php"></iframe> 

step1.php

button.click -> ajax GET step2.php -> resize #MyIframe 

爲什麼您加載使用Ajax step2.php頁面目前還不清楚我的,你就不能更改#MyIframesrc屬性到step2.php,然後調整幀的大小?

在step1.php

<button id="next">Next</button> 

<script> 
    $('#next').click(function() { 
     $('#MyIframe', window.top.document).attr('src', 'step2.php').height(1000); 
    }); 
</script> 

如果您需要發佈值step2.php,你可以從step1.php提交表單,而不是改變的iframe src屬性,並使用相同的技術在第二步。 PHP來調整頂級iframe的大小。