2013-05-16 78 views
8

我正在做這個第一次。我在我的信息頁上創建了一個iframe,我希望iframejquery之間的文字。 這裏是我的代碼:從iframe獲取數據

<html> 
    <head><script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 

    <script type="text/javascript"> 
    function copyIframeContent(iframe){ 
     var iframeContent = $(iframe).contents(); //alert(iframeContent); 
     //$("#result").text("Hello World"); 
     $("#result").html(iframeContent.find('body').html);alert(iframeContent.find('body').html()); 
    } 
    </script> 
    </head> 
    <body> 
    <iframe id="myIframe" onload="copyIframeContent(this);" name="myIframe" src="text.php"></iframe><br /> 
    Result:<br /> 
    <textarea id='result'></textarea> 
    <input type="button" value="click" id="btn" onclick="aa()"> 
    <script type="text/javascript"> 
     function aa(){ alert("Fdf"); 
      alert(document.getElementById('myIframe').contentWindow.document.body.innerHTML); 
    } 
    </script> 
    </body> 
</html> 

text.php:

text to change 

我嘗試了很多在所有的瀏覽器,但仍這是行不通的。 任何人都可以幫助我獲得此內容嗎?

+0

是它的同一頁和同一目錄 –

+1

「但仍然不工作」我只是想知道這是什麼意思?如果有任何 –

+0

我有複製/粘貼在這裏我的wholde代碼,但仍然是它現在的工作dontknow爲什麼請詳細說明給我們錯誤信息。在警報顯示我[ObectObject] –

回答

0

的contentWindow工作在兩個FF和鉻

document.getElementById('myFrame').contentWindow.document.body  

會給你一個DOM元素體

您也可以嘗試像

window.frames['myIframe'].document.body  

這可能會爲你做的伎倆還有

您的瀏覽器可能有問題在安全。如果你在本地機器上運行它。有一種方法可以禁用瀏覽器的安全性。

+0

首先我從iframe的文本中獲取文本,然後我想用我的div替換它(結果) –

+0

(document.getElementById('myFrame')。contentWindow.document.body).appendchild(div (結果)) http://www.w3schools.com/dom/met_element_appendchild.asp –

2

使用.contents()可以訪問iFrame的DOM。

$('#myIframe').contents() 

UPDATE:

在OP:

$("#result").html(iframeContent.find('body').html); 

應該說:

$("#result").html(iframeContent.find('body').html()); 
+0

OP已經在使用內容() –

+0

它的正在工作..我警告這一點,我得到「[obect對象]」在警報方框 –

+0

'$('#myIframe')。contents()。find('body')。html()'too? .contents()僅返回jQuery。 –

0

用jQuery做會更容易一些:

$('Your Selector', frames['myIframe'].document) 

上面的例子將從myIframe得到任何東西。但iframe必須來自與父文檔相同的域。如果不是來自同一個域,則會發生安全違規(您無法將外部網站的內容添加到您的網頁並更改該內容。)

如果沒有安全違規,您可以對選擇執行任何操作。例如,您可以使用jquery append()方法在iFrame中插入新的html,您可以使用html()方法替換html或jquery/pure javascript允許的任何其他函數。

1
var content=$("iframe").contents().find('body').html(); 

alert(content); 
+5

Hiya,這可能很好地解決了這個問題......但是如果你能夠編輯你的答案並提供一些關於它是如何工作和爲什麼工作的解釋,那將會很好:)不要忘記 - 有許多新手堆棧溢出,他們可以從你的專業知識中學到一兩樣東西 - 對你來說很明顯對他們來說可能不是這樣。 –