2011-03-31 98 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