iframe跨域访问父框架js方法

Posted m、y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iframe跨域访问父框架js方法相关的知识,希望对你有一定的参考价值。

iframe跨域访问父框架js方法

条件

1.不在同一个主域下

2.iframe调用父框架方法

 

环境说明

父框架有打开TAB页方法,但是子页面嵌入的是其他系统页面,同样需要打开TAB页。

 

方法描述

原理上就是通过子页面嵌入父框架页面来使用调用方法

父框架桥连页面

 1 @{
 2     ViewBag.Title = "跨域桥连";
 3     Layout = "~/Views/Shared/_LayoutCenter.cshtml";
 4 }
 5 
 6 @section Scripts{
 7 <script>
 8     parent.parent.DomainAddtabs("@ViewBag.Url", "@ViewBag.Name"); // execute main function
 9 </script>
10 }

子系统js方法

 1 /*
 2  跨域问题
 3 */
 4 ; (function ($) {
 5     $.extend({
 6         sendDomain: function (opt, callback) {
 7             var defaults = {
 8                 wmsUrl: #,
 9                 icon: icon-house_in, //图标
10                 title:title,
11                 sapUrl: #
12             };
13             var opts = $.extend(defaults, opt);
14 
15             try {
16                 var parent = window.parent;
17                 var url = opts.wmsUrl;
18                 var icon = "icon " + opts.icon;
19                 window.parent.addTab(opts.title, url, icon);
20             } catch (e) {
21                 var url = opts.wmsUrl;
22                 $.execMain(url, opts.title, opts.sapUrl);
23             }
24             if (callback) {
25                 callback();
26             }
27         },
28         // exec main function
29         execMain: function (url, name, mainUrl) {
30             if (typeof (exec_obj) == undefined) {
31                 exec_obj = document.createElement(iframe);
32                 exec_obj.name = tmp_frame;
33                 exec_obj.src = mainUrl + ?url= + url + &name= + name;
34                 exec_obj.style.display = none;
35                 document.body.appendChild(exec_obj);
36             } else {
37                 exec_obj.src = mainUrl + ?url= + url + &name= + name + & + Math.random();
38             }
39         }
40     });
41 })(jQuery);

 

完成。

 

以上是关于iframe跨域访问父框架js方法的主要内容,如果未能解决你的问题,请参考以下文章

子iframe 怎么访问 父的 iframe方法

js操作iframe的一些方法介绍

用iframe框架调用了另一个页面,如何显示指定的某一块区域呢

iframe子页面在跨域情况下使用父页面的方法

在iframe中如何调用父窗体的方法?

如何用javascript 跨域获取iframe子页面的元素信息