2009-06-04 61 views
4

部分代碼:運行在iframe中的javascript是否會影響主頁?

我的下面的代碼從我的數據庫中抽取一個查詢,然後使用inner.HTML =來顯示div內的數據。它可以在原始使用中正常工作....

但是,下面的版本在iFrame中被調用,因爲它用於更新頁面。

頁中沒有錯誤和JavaScript觸發但是最後行不行......

我剛剛意識到,也許因爲它加載在隱藏的iframe它正試圖設置的的innerHTML div裏面的iFrame,當然不會工作。

這是怎麼回事?它沒有任何意義,因爲我有另一個腳本,它以相同的方式調用JavaScript,並且工作正常。

<?php 
    while ($row = mysql_fetch_array($result)) 
    { 
     $p = $p.'<div id="left"><img src="http://www.sharingizcaring.com/bleepV2/images/thumbs/'.$row[image].'" /></div>'; 
     $p = $p.'<div id="right"><h2>'.$row[artist].' - '.$row['title'].'</h2><br>'.$row['message'].'<br>'; 
     $p = $p.'<a href="http://www.sharingizcaring.com/bleepV2/'.$row[username].'">'.$row[username].'</a> '.$row[date].'</div>'; 
     $p = $p.'<div style="clear: both;"></div>'; 
     $p = $p.'<div id="dotted-line"></div>'; 
    } 


    $p = addslashes($p); 
?> 

<script> 

     alert('posts are firing? '); 

     document.getElementById('posts').innerHTML = 'why doth this faileth?'; 
</script> 

回答

5

你可以做到! Read here for more info

可以影響文檔與從窗元件設置和獲取變量中包含的iframe:

// normally you use... 
var whatever = "value"; 

// use the window object instead, which is shared 
// between the iframe and the parent 
window.whatever = "value"; 

你應該知道的另一件事是,你可以通過父對象

訪問主文檔

你可以使用iframe中...

parent.someattr; 

// or try this 
parent.getElementById('some_element'); 
+0

我才意識到父。是我的問題的一部分。我如何開窗? window.getElementById和這樣和那樣的? – ian 2009-06-04 17:36:20

+0

「窗口」。部分只是您可以用於變量的更全局的範圍。 – Kip 2009-06-04 17:39:52

1

iframe中的部分不被視爲相同的文檔。

2

我想你想要的是:

parent.getElementById('posts').innerHTML = 'why doth this faileth?'; 
相關問題