2011-08-29 51 views
0

我有一個php頁面,其中包含另一個名爲'tree.php'的php頁面,並且還包含一個iframe。Iframe調用頁面'contentpage.php'。然後我想更改使用JavaScript或jquery的從tree.php.I iframe的SRC已經alredy嘗試這些如何從另一個頁面更改iframe src

document.getElementById['contentframe'].src = "contentpage.php"; 
$("#contentframe").attr("src", "contentpage.php"); 
+0

document.getElementById ['contentframe']。src應該是document.getElementById('contentframe')。src –

+1

頂級頁面和iframe的域是否相同?如果他們不是,我希望你不能改變iframe的來源。 – Femi

回答

2

假定所有的幀都是相同的域,這可以很容易地完成。

<html> 
<head> 
    <title>Test</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
     var change_iframe_src = function(new_src) { 
      $("#myframe-content").attr('src', new_src); 
     } 
    </script> 
</head> 

<body> 
    <!-- frame which includes your tree.php --> 
    <iframe src="iframe.html" width="200" height="200" border="1"></iframe> 
    <!-- frame for which we will change src attribute --> 
    <iframe id="myframe-content" src="" width="400" height="200" border="1"></iframe>   
</body> 

現在tree.php附上點擊處理程序東西應該改變iframe的屬性(可能還有一些鏈接)的src。例如:

<html> 
<head> 
    <title>Tree</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#nav a").click(function(e) { 
       e.preventDefault(); 
       // call function in a parent frame 
       parent.window.change_iframe_src(this.rel); 
      }) 
     }) 
    </script> 
</head> 
<body> 
    <div id="nav"> 
     <a href="#" rel="iframe2.html">Change iframe src to iframe2.html</a> 
     <a href="#" rel="iframe3.html">Change iframe src to iframe3.html</a> 
    </div> 
</body> 

現在有了這種設置在tree.php會調用父窗口(其中內嵌的tree.php本身的窗口)中定義的功能的鏈接。該函數(本例中的change_iframe_src)帶有一個參數,該參數是一個新的url,應將框架myframe-content的src屬性更改爲該參數。

同樣,只要基本文檔和帶有tree.php的iframe是同一個域中的文檔,就可以工作。