码迷,mamicode.com
首页 > Web开发 > 详细

iframe跨域访问父框架js方法

时间:2016-11-21 12:23:06      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:exe   add   打开   call   跨域问题   cut   rand   jquer   abs   

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方法

标签:exe   add   打开   call   跨域问题   cut   rand   jquer   abs   

原文地址:http://www.cnblogs.com/wrhming/p/6084910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!