当前位置: 代码迷 >> JavaScript >> 如何从HTML文件访问iframe中已加载网址的“ id”,“名称”等
  详细解决方案

如何从HTML文件访问iframe中已加载网址的“ id”,“名称”等

热度:69   发布时间:2023-06-05 15:59:07.0

我有一个Iframe.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>

现在,我尝试使用iframe中加载的URL的内容,即test.html中的Sample.html,如下所示:

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

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

但这是行不通的。请您从Test.html告诉我如何使用Sample来访问Sample.html文件内容,例如(id,name,class等),该文件内容是使用JQuery加载到iframe.html中的。 请帮忙。

谢谢Kamakshi

要访问HTML内含的iframe中的任何文档,请使用以下页面:

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

您可以使用以下脚本进行访问

myFrame.document.getElementById('elementID');

确保提供用于访问框架本身的名称 (此处为:myFrame)。 elementID是iframe中加载的html / url中任何元素的ID

<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 )并将Sample.html与父文件(test.html)放在同一域中,则此方法效果很好。

  相关解决方案