判断IFRAME是否全部载入完成 。调用iframe中的控件出现:错误:拒绝访问,代码:0 。Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

判断IFRAME是否全部载入完成  

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Pragma" contect="no-cache">
<title>新建网页 1</title>
</head>

<body>

<div id="info">正在加载.....</div>

 

 

<iframe id="auto_ifm" src="http://www.cnblogs.com/lhgstudio/archive/2010/10/24/1859946.html" scrolling= auto  width="100%" height="570" ></iframe>

 

 </body>


 <script>
/// 
 
var iframe = document.getElementById("auto_ifm");
    //iframe.src="http://www.cnblogs.com/lhgstudio/archive/2010/10/24/1859946.html";
    if (iframe.attachEvent){
        iframe.attachEvent("onload", function(){
            document.getElementById('info').innerHTML='加载完成!';
         });
    }else{
        iframe.onload = function(){
            document.getElementById('info').innerHTML='加载完成!';
        };
    }

 

infot(1);
function infot(j)
{
 if (document.getElementById('info').innerHTML=="加载完成!");
 //    { b_click();}
 else
     {
      j++;
      document.getElementById('info').innerHTML="正在加载....."+j+"秒";
      setTimeout("infot("+j+")",1000);
      
     }
}
//

 
 </script>
</html>

=====================================================================================

调用iframe中的控件出现:错误:拒绝访问,代码:0  

//服务器地址 var webroot = "http://192.168.1.123:8080/tpccalendar/";//web.xml配置的servletvar service_pattern = "events_service";

 这是我的局域网ip地址
 
我自己测试时为localhost:8080....
 
而是用firefox和chrome就没有此问题
 
后来发现在我机器上输入<span style="white-space: pre;">192.168.1.123:8080就不会有问题...</span>
也就是换成IP:8080解决问题
 
总结原因为
 
<span style="color: #ff0000;">ie的安全级别过高</span>
 
<span style="font-family: arial, sans-serif, helvetica, tahoma; line-height: 18px;">工具--internet选项--安全--自定义级别--其它--通过域访问数据源</span>
 
设置一下就好了

========================================================================================

s/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法  

 

在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素

js

在父窗口中获取iframe中的元素 

1、

格式:window.frames["iframe的name值"].document.getElementById("iframe中控件的ID").click();

实例:window.frames["ifm"].document.getElementById("btnOk").click();

2、

格式:

 

var obj=document.getElementById("iframe的name").contentWindow;

var ifmObj=obj.document.getElementById("iframe中控件的ID");

ifmObj.click();

实例:

 

var obj=document.getElementById("ifm").contentWindow;

var ifmObj=obj.document.getElementById("btnOk");

ifmObj.click();

在iframe中获取父窗口的元素

格式:window.parent.document.getElementById("父窗口的元素ID").click();

实例:window.parent.document.getElementById("btnOk").click();

jquery

在父窗口中获取iframe中的元素 

1、

格式:$("#iframe的ID").contents().find("#iframe中的控件ID").click();//jquery 方法1

 

实例:$("#ifm").contents().find("#btnOk").click();//jquery 方法1

2、

格式:$("#iframe中的控件ID",document.frames("frame的name").document).click();//jquery 方法2

实例:$("#btnOk",document.frames("ifm").document).click();//jquery 方法2

在iframe中获取父窗口的元素

格式:$('#父窗口中的元素ID', parent.document).click();

实例:$('#btnOk', parent.document).click();

 

default.htm==================================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>主页面</title>

 

<script type="text/javascript" language="javascript">

window.οnlοad=function()
{
  document.getElementById("btnSet").οnclick=setiframe;
}

function setiframe()

{
  if(document.getElementById)
    {
      var source=document.getElementById("source").value;
      var ifms=document.getElementById("ifm").contentWindow;
      ifms.document.getElementById("goal").value="OOOO";
      //ifms.document.getElementById("goal").value=source;

    }
}
function c1()
{
  alert("lll");
}
</script>

</head>

<body>

源:<input type="text" value="" id="source" name="source" />

<input type="button"  value="设置" id="btnSet" name="btnSet" />

<input type="button"  value="设置" id="btnSet0" name="btnSet0" onlick="c1();"/><br /></br />

<div>

<iframe id="ifm" name="ifm" src="default2.html" frameborder="0"></iframe>

</div>

</body>

</html>

default2.html=======================================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>iframe子页面</title>

</head>

 

<body>

目标:<input type="text" id="goal" name="goal" value="" />

</body>

</html>

<script type="text/javascript" language="javascript">

window.οnlοad=Initgoal;

function Initgoal()

{

document.getElementById("goal").value=window.parent.document.getElementById("source").value;

}

</script>

### 回答1: 可以使用以下方法判断是否iframe : ```javascript if (window.self !== window.top) { // 在 iframe } else { // 不在 iframe } ``` 在 jQuery ,可以使用 `parent` 方法调用 iframe 页面的元素方法: ```javascript // 获取页面的元素 $(parent.document).find('#elementId'); // 调用页面的方法 parent.methodName(); ``` ### 回答2: 要判断当前页面是否iframe,可以使用JavaScript的window对象的top属性来判断。如果top属性等于自身window对象,那么证明当前页面不在任何iframe;如果top属性不等于自身window对象,那么证明当前页面在一个iframe。 示例代码如下: ```javascript if (window.top === window){ console.log("当前页面不在任何iframe"); } else { console.log("当前页面在一个iframe"); } ``` 要在iframe调用页面的元素方法,可以使用jQuery的parent()方法或者window.parent来获取页面的元素或窗口对象,然后通过对象的方法来进行操作。 示例代码如下: ```javascript // 使用parent()方法获取页面元素并进行操作 $("button", parent.document).click(function(){ // 在页面查找<button>元素,并添加点击事件处理函数 alert("在页面点击了按钮"); }); // 使用window.parent获取页面窗口对象并进行操作 window.parent.postMessage("Hello from iframe", "*"); // 向页面发送跨域消息 ``` 注意:在跨域的情况下,使用postMessage方法页面发送消息时,需要指定目标窗口的origin,以保证安全性。 ### 回答3: 在JS,可以通过window对象的top属性判断当前页面是否iframe。若top属性等于当前window对象本身,则表示当前页面不在任何iframe;若top属性指向其他window对象,则表示当前页面在一个iframe。 以下是通过JS代码判断是否iframe的示例: ```javascript if (window.top === window.self) { console.log("当前页面不在iframe"); } else { console.log("当前页面在iframe"); } ``` 当需要在iframe的页面调用页面的元素方法时,可以使用jQuery来实现。jQuery可以通过使用窗口对象的parent属性来访问页面的元素方法。 以下是通过jQuery调用页面的元素方法的示例: ```javascript // 在iframe调用页面的元素 var parentElement = $(parent.document).find("#elementId"); // 在iframe调用页面的方法 parent.myFunction(); ``` 在以上示例,通过$(parent.document)来选择页面的DOM元素,再通过find()方法选择特定的元素。若需要调用页面的方法,则使用parent对象直接调用方法即可。通过这种方式,可以在iframe页面进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值