• 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);

    完成。

  • 相关阅读:
    十款最实用的Android UI设计工具
    tom大叔blog--------深入理解javascript系列-----------笔记
    右键
    指尖下的js —— 多触式web前端开发之三:处理复杂手势
    关于移动端点击后出现闪或者黑色背景
    修改wamp的WWW目录
    Unicode中文排序
    jquery 小记
    pageX,clientX,offsetX,layerX的区别
    为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?【转】
  • 原文地址:https://www.cnblogs.com/wrhming/p/6084910.html
Copyright © 2020-2023  润新知