各个iframe内获取值,互相调用方法测试

各个iframe内获取值,互相调用方法测试
父窗口获取子iframe内的变量值、调用函数:
通过window.frames["iframe_id"]获取到子iframe对应的window对象,然后再获取值,调用函数。如:
    var left=window.frames["left_f"].document.getElementById("left").value;
    window.frames["right_f"].right_a();

子窗口获取父窗口的变量值,调用函数:
通过parent.window获取到父窗口的window对象。如:
        var main=parent.window.document.getElementById("main").value;
        parent.window.main_a();

子窗口获取兄弟窗口的变量值,调用函数:
先获取父窗口的window对象,通过父窗口的farmes[]集合获取兄弟窗口对应的window对象。如:
    var left=parent.window.frames["left_f"].document.getElementById("left").value;
    parent.window.frames["left_f"].left_a();
=================================================
head.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
</script>
<style type="text/css">
        body,html
        {  
           height:100%;
           margin:0px;
           padding:0px;
           overflow:hidden;
        }
        #head
        {
           border:1px solid blue;
           height:100%;
        }
     </style>
</head>
<body>
<div id="head"></div>
</body>
</html>
=================================================
left.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
</script>
<style type="text/css">
        body,html
        {  
           height:100%;
           margin:0px;
           padding:0px;
           overflow:hidden;
        }
        #left1
        {  
           border:1px solid green;
           height:100%;
        }
     </style>
</head>
<body onload="left_load();">
<div id="left1">
   <input type="text" id="left" value="left" style="width:150px;height:15px;"/>
</div>
 <script type="text/javascript">
function lef...

main.html
<!DOCTYPE html>
<html>
<head>
     <title>test iframe</title>
     <script type="text/javascript">
     </script>
     <style type="text/css">
        body,html
        {  
           height:100%;
           margin:0px;
           padding:0px;
        }
        #main1
        {
           height:100%;
        }
     </style>
</head>
<body onload="load();">
    <div id="main1" >
       <div id="head"  style="height:120px;border:1px solid blue;">
          <input type="text" id="main" value="main" style="width:150px;height:15px;"/>
       </div>
       <iframe id="left_f" name="left_f" src="left.html" width="20%" height="80%" frameBorder="0" /></iframe>
       <iframe id="right_f" name="right_f" src="right.html" width="79%" height="80%" frameBorder="0" /></iframe>
    </div>
     <script type="text/javascript">
     function load()
     { 
         var left=window.frames["left_f"].document.getElementById("left").value;
         var right=window.frames["right_f"].document.getEle...
在C#中,如果你想要在一个嵌入(iframe)内的内容页面(通常是ASP.NET Web Forms应用或MVC视图)获取宿主母版页或主页面的控件值,你需要考虑以下几个步骤,因为这通常涉及客户端和服务器端交互: 1. **AJAX(Asynchronous JavaScript and XML)请求**: - 在IFrame中的JavaScript可以通过XMLHttpRequest或jQuery的$.ajax方法发起异步请求到母版页的控制台URL。 - 示例代码(假设你的母版页有一个名为`MyControl`的`asp:Label`控件): ```javascript function getValueFromMasterPage() { $.ajax({ type: "GET", url: "@Url.Content("~/YourMasterPage.aspx")", // 替换为你的母版页地址 data: { id: "yourControlUniqueId" }, // 如果需要传参 success: function(result) { var masterValue = result Masterserver.MyControl.Text; // 切记在母版页上正确的命名空间和控件名 console.log(masterValue); }, error: function(xhr, status, error) { console.error("Failed to fetch value from master page: ", error); } }); } ``` 2. **使用WebMethod**: - 在母版页上,创建一个`WebMethod`,它接收一个参数,并返回你需要的值。 - 从IFrame调用这个方法,同样使用Ajax。 ```csharp [WebMethod] public static string GetMasterControlValue(string controlId) { Label myControl = (Label)Master.FindControl(controlId); // 控制器查找 return myControl.Text; } ``` 3. **服务器端验证**: - 验证用户是否有权访问这些信息,尤其是如果它们包含敏感数据。 需要注意的是,由于安全原因(同源策略),这种跨域通信在现代浏览器中受到限制,除非母版页和内容页面在同一域下。如果你需要在不同域间通信,你可能需要借助JSONP、CORS或其他技术来绕过同源策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值