zoukankan      html  css  js  c++  java
  • 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);

    完成。

  • 相关阅读:
    hive表增量抽取到oracle数据库的通用程序(二)
    java进程的守护进程脚本
    hadoop2.7节点的动态增加与删除
    hive表增量抽取到oracle数据库的通用程序(一)
    arduino 驱动电调
    arduino IO口
    通过电机编码器AB相输出确定电机转向
    Wifi小车资料
    winform 按键控制
    vs2010 EF4.0 访问mysql
  • 原文地址:https://www.cnblogs.com/wrhming/p/6084910.html
Copyright © 2011-2022 走看看