2011-03-31 31 views
0

iframe的名字」 加載URL的等我有一個Iframe.html的文件:如何訪問「ID」, 「從HTML文件

<body onload="alert('frame 1 loaded');"> 
<div> This is frame 1 content </div> 
<a id="a1" href="Sample.html"> click</a> 
</body> 

Sample.html

<body> 
<ul id="list1"> 
<li name="one">one</li> 
<li name="two">two</li> 
</ul> 

我打電話的iframe形式的test.html文件:

<script type="text/javascript" src="jquery-1.5.1.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    var i=10; 
    $("#frame1").ready(function() { 

    $('#frame1').contents().find('#a1').click(function() { 
     alert("Hello"); 
     $('#frame1').attr('src', $('#frame1').contents().find('#a1').attr("href")); 
     $('#frame1').load(); 
    }); 
    $('#frame1').contents().find('#a1').click(); 
</script> 
    </head> 
    <body onload="handleMainOnload();"> 
     <!--iframe id="frame1" src="about:blank"/--> 
     <iframe id="frame1" src="iframe.html"/> 
    </body> 

現在我嘗試使用URL的IFRAME即Sample.html裝入內容的test.html如下:

$('#frame1').contents().find('#list1 li[name=one]').click(function() { 
    alert(" Clicking list...."); 
}); 

$('#frame1').contents().find('#list1 li[name=one]').click(); 

但是,這並不工作..你能告訴我從test.html文件如何訪問像Sample.html文件內容(ID,姓名,班級等)它使用JQuery加載到iframe.html中。 請幫忙。

感謝 Kamakshi

+0

嗯......我不太清楚如何去做你所問的,但你應該優化你的代碼。 var $ frame = $('#frame1');'然後用'$ frame'來做你的動作,比如'$ frame.contents()。find('#a1')。click();'If你不需要,jQuery每次遍歷你的文檔來找到它。這是你不想要的表現。 – 2011-03-31 08:22:22

+0

您正在使用哪種瀏覽器?...在​​不同的瀏覽器環境下,iframe的行爲可能會有所不同。 – 2011-03-31 09:02:09

+0

使用firefox和IE – Kamakshi 2011-03-31 11:13:54

回答

0
<html> 
<head> 
<title>Main Frame 2 Title </title> 
<script type="text/javascript" src="jquery-1.5.1.min.js"></script> 
<script type="text/javascript"> 
------ 
------ 
alert("frame ready"); 
var $value1 = $frame.contents().find('#list1 li[name=one]').html() ; 
alert("loaded + " + $value1); 
$frame.contents().find('#list1 li[name=one]').click(function() { 
    alert("About + clicked"); 
}); 
$frame.contents().find('#list1 li[name=one]').click(); 
}); }); 
</script> 
</head> 
<body> 
<iframe id="frame1" src="sample.html" /> 

這工作得很好,如果我給的iframe src=sample.html,而不是直接使用其他文件重定向(即src=iframe.html),並保持樣品內部加載HTML/URL內的任何元素的ID。 html與父文件(test.html)位於同一個域中。

0

要訪問任何文件包括在HTML中的iframe內搭例如以下頁面:

<html> 
.... 
<body> 
<iframe id='myFrame' name='myFrame' src='someUrl'> 
</body> 
</html> 

您可以訪問使用下面的腳本

myFrame.document.getElementById('elementID'); 

確保您提供名稱(here:myFrame)t帽子用於訪問框架本身。 的elementID是IFRAME

+0

只使用名稱不是最優的。 'window.frames [「myFrame」]'或'document.getElementsByName(「myFrame)[0]'將通過名稱獲得框架,但是'document.getElementById('myFrame')'也將使用提供的ID獲取框架。但是提問者有jQuery,所以其他方法可用 – mplungjan 2011-03-31 08:32:05

+0

好吧!!如果你使用'document.getElementById('myFrame')'你一定會得到iframe,但是你不能訪問在iframe ...和我認爲需要訪問iframe中的元素的提問者 – 2011-03-31 09:00:04

+0

@ SM09是的,您可以在所有瀏覽器中使用document.getElementById('myFrame')。contentWindow.document'和等效的 – mplungjan 2011-03-31 09:04:54