精华内容
下载资源
问答
  • 10、下列说法中,不属于数据模型所描述的内容()。 A、数据结构 B、数据操作 C、数据查询 D、数据约束 我的答案:A 11、若按功能划分,软件测试的方法通常分为白盒测试方法和(黑盒测试方法)。 12、...
  • 管理员设置的浏览权限不影响爬虫抓取内容 通过一些 HTML 细节属性(比如 canonical)进行 SEO 实时的消息通知 可按类别展示消息,标记已读 详细的消息类别: 分相关、同城、系统消息等 友好的 Chrome ...
  • 我可以告诉我同事“请查看 yoursite.com/products/Widgets,”,她可能无需再次问我 URL 是什么即可打开该页面。(尝试一下,您只需说出“Amazon.com 页面”即可!)此 URL 还将显示出来,并且应该是“可删节”...
  • 我也遇到过这样的情况,当时也着急得不轻,后来看到了以下的内容,照着一步步的做了做,真的好了。内容不少,但是仍然希望你能耐住性子,仔细的看看自己属于那种情况,应该会有所收获。 局域网互访 - [ 网络 ] ...
  • 跨域iframe数据传递

    千次阅读 2012-07-05 18:09:01
    在我们的白社会里,需要嵌入第三方应用,而嵌入的方式使用 iframe,为了页面美观,这里就有一个最简单的需求:iframe 的高度需要跟随其本身内容的变化而实时变化,这就要求主页面根据 iframe 的内容实时的去设置其...

    先看一下我们遇到了什么问题?

    在我们的白社会里,需要嵌入第三方应用,而嵌入的方式是使用 iframe,为了页面美观,这里就有一个最简单的需求:iframe 的高度需要跟随其本身内容的变化而实时变化,这就要求主页面根据 iframe 的内容实时的去设置其样式 height 值,但是因为第三方应用和白社会不属于同一个域,所以给实现带来了一点小小的麻烦,所以才有以下的一些讨论…

    仔细分析一下问题的实质是什么呢?

    其实这里需要解决的是,在一个页面 A 中嵌入一个iframe B,A 和 B 不属于同一个域,但是 A 和 B 需要进行一些必要的通信,传递少量的数据信息,所以问题的实质就是主页面与跨域 iframe 之间怎么通信,也就是怎么传递数据信息

    下面就针对两种不同的需求,总结一些比较简单,常用和稳定的解决方案。

    • 主页面A 怎么向 iframe B 传递数据
    • iframe B 怎么向 主页面A 传递数据

    需求一:主页面A 怎么向 iframe B 传递数据呢?

    这种方式,是主页面需要给 iframe B 传递数据,然后 iframe B 获得到数据后进行特定的处理

    实现方式

    实现的技巧就是利用 location 对象的 hash 值,通过它传递通信数据,我们只需要在主页面A中设置 iframe B 的 src 后面多加个 #data 字符串(data就是你要传递的数据),如下图所示:

    主页面A 向 iframe B 传递数据

    然后在 iframe B 中通过某种方式能即时的获取到这儿 data 就可以了,其实常用的一种方式就是:

    • 1. 在 iframe B 中通过 setInterval 方法设置定时器, 监听 location.href 的变化即可获得上面的 data 信息
    • 2. 然后 iframe B 就能根据这个 data 信息进行相应的逻辑处理

    需求二:iframe B 怎么向 主页面A 传递数据呢?

    这种方式,是 iframe B 需要给主页面传递数据,然后主页面根据获得到数据后进行特定的处理

    实现方式

    实现的技巧就是利用一个代理 IframeC,它嵌入到 iframe B 中,并且和主页面A必须保持是同域,然后我们通过它充分利用上面第一种通信方式的实现原理就能把 iframe B 的数据传递给 iframeC,接下来的问题就是怎么让iframeC把数据传递给主页面A ,如下图所示:

    iframe B  向 主页面A 传递数据

    因为,iframeC 和主页面是同域的,所以它们之间传递数据就变得简单多了,我们这里的方式就是使用一个经常使用的属性 window.top (也可以使用window.parent.parent),它返回对载入浏览器得最顶层 window 对象的引用,这样我们就能直接条用主页面A中方法啦,哈哈哈,简单吧。

    到此,我们做个简单分析总结

    当然还有其他一些方式,也都测试过,不是浏览器兼容性不好,就是实现起来复杂,通过以上方式就能很方便的在跨域的 iframe 和主页面之间传递数据了,当然也就能解决上面提到的设置 iframe 高度的问题了,但是这种实现方式的前提也是最大的缺点就是 iframe 中的内容必须是我们可控的,但是至少我们这种实现方式是建立在浏览器的安全规则之上的,没有破坏应用本身的安全性。

    进一步叨叨,实现时需要考虑的一些细节

    上面的分析,其实只是一个简单的原理,在白社会里,虽然我们目前的需求还仅仅是实现第三方 iframe 形式的 App 的高度自适应,但是我们在实现的时候尽量考虑到了易用,可扩展性和可维护性,比如:

    • 让第三方 App 只需加载一个我们提供的JS种子文件就能很方便的使用我们为其提供的各种工具
    • 上面的各种工具,我们采用包的形式进行组织,最大化的实现按需加载
    • 第一条中的JS种子文件只提供基础的方法实现,并且把最常用的工具包放在里面,比如高度自适应
    • 通过种子文件,我们还提供给第三方 App 一些常用的JS工具包,而且直接使用的类似YUI3模块的动态加载机制就可使用指定的工具包
    • 对第三方 App 和 主页面传递的数据进行分类(自我调用,登录验证,传递数据等等)
    • 传递的数据使用满足特定规范的JSON格式,并通过统一的服务出口发出去,主页面提供一个统一服务接口解析数据,并根据规范调用相应的方法
    • 还有,就是版本控制的问题,为了尽量减少给第三方App带来影响,以上所有这些JS文件的版本都是采用向后兼容的策略,小版本使用服务器设置SQUID缓存特定频率的失效时间实现,大版本更新根据用户自己的需求手动更改
    • 当然,以上可能不是最优的解决方案,只是希望能给你一些帮助和引导,我们也在逐步的改进我们的一些实现方式,比如版本控制这块儿,我们也有一些问题需要解决

    回过头来,我们再看点儿具体的代码

    主页面A的源码

    1. /*主页面A*/
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml">
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    6. <title>主页面A</title>
    7. <script type="text/javascript">
    8. function init(){
    9.     document.domain = 'bai.sohu.com';
    10.     alert('我是主框架,嵌入了第三方应用IframeB,下面开始加载应用');
    11.     var iframeTag = document.getElementById('frameB'),
    12.          iframeSrc = 'http://test.com/iframePage.html';
    13.    
    14.     iframeTag.src = iframeSrc;
    15.     iframeTag.style.display = 'block';
    16. };
    17.  
    18. function callback(h){
    19.     var iframeB = document.getElementById('frameB');
    20.     alert('IframeC调用我(主框架)接口,把IframeB的高度传给我,具体值是:' + h);
    21.     iframeB.style.height= h + 10 + 'px';
    22.     iframeB.src += '#'+ h
    23. };
    24. </script>
    25. </head>
    26. <body onload="init();">
    27.     <p>我是主页框架,我的域是:bai.sohu.com</p>
    28.     <iframe id="frameB" style="display:none;"></iframe>
    29. </body>
    30. </html>

    iframeB(iframePage.html)的源码

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>iframeB</title>
    6. </head>
    7. <body onload="init();">
    8.     <p style="height:500px;">我是三方应用,我的域是:test.com</p>
    9.     <iframe id="frameC" style="height:1px;width:1px;display:none;"></iframe>
    10. </body>
    11. </html>
    12. <script type="text/javascript">
    13. function init(){
    14.     alert('我是第三方App,下面开始创建和主框架同域的通信通道IframeC,并设置它的src,用#号传递高度值');
    15.    
    16.              var iframeTag = document.getElementById('frameC'),
    17.           iframeSrc = 'http://bai.sohu.com/iframePageC.html#',
    18.                    pageHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
    19.    
    20.     iframeTag.src = iframeSrc + pageHeight;
    21.     iframeTag.style.display = 'block';
    22.    
    23.     window.setTimeout(function(){
    24.         alert('主页面设置我(IframeB)的src,通过Hash(#)给我传递它收到的高度:' + location.hash);
    25.     },2000);
    26. };
    27. </script>

    iframeC(iframePageC.html)的源码

    1. <script type="text/javascript">
    2.     document.domain = 'bai.sohu.com';
    3.     alert('我(IframeC)收到iframeB通过参数(#)给我传递高度值,我现在调用主页面方法去设置IframeB的高度');
    4.     top.callback(window.location.href.split('#')[1]);
    5. </script>

      

    展开全文
  • 它主要具有以下几大功能:一能将您全部帐号信息分类记录并加密保存,您只需输入自定义高强度登录密码后即可查看;二可自动生成任意长度和组成新密码,您再不用浪费脑细胞去编了;三轻轻摇晃手机便可将...
  • 它主要具有以下几大功能:一能将您全部帐号信息分类记录并加密保存,您只需输入自定义高强度登录密码后即可查看;二可自动生成任意长度和组成新密码,您再不用浪费脑细胞去编了;三轻轻摇晃手机便可将...
  • flash shiti

    2014-03-14 10:32:41
    8.Flash中Remove movie clip指的是什么? A. 删除已复制电影夹子 B. 删除电影夹子 C. 移动电影夹子 D. 复制电影夹子 9.Flash可接受当鼠标放在按钮上时产生效果鼠标操作是哪个? A. Press B. Release C....
  • 以下是JOSN获取代码: ``` package com.java.activiti.controller; import net.sf.json.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org...
  • 小码短链接这款免费扩展,可以一键生成各种网址多个短链接,并且还同步提供了短链接二维码,对于新媒体工作者而言,测量内容在各渠道阅读量(转化率)好工具! 079《Search the current site(站内搜索)》超...
  • java面试宝典

    2013-02-28 16:04:01
    95、以下哪些属于Session方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、Hibernate如何延迟加载? 22 98、Hibernate中怎样实现类之间关系?(如:一对多、多对多关系) 22 99、说下Hibernate...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    95、以下哪些属于Session方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、Hibernate如何延迟加载? 22 98、Hibernate中怎样实现类之间关系?(如:一对多、多对多关系) 22 99、说下Hibernate...
  • 默认模式下,都是属于library形式组件【app作为空壳主工程依赖所有组件】,如果想把某一个library形式组件切换成一个独立可以runapplication,则 比如,我想把视频模块,也就是该项目中video组件切换成可...
  • 什么是Linux?.................................................................................................................2 二.安装Linux好处?.....................................................
  • Visual C++ 2005 入门经典 详细书签版

    热门讨论 2013-02-02 16:39:43
    Horton拥有丰富教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面专家。Ivor Horton还著有Beginning Visual C++ 6、Beginning C ...
  • Horton拥有丰富教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面专家。Ivor Horton还著有Beginning Visual C++ 6、Beginning C ...
  • 最近在看 webpack 如何做持久化缓存的内容,发现其中还是有一些坑点的,正好有时间就将它们整理总结一下,读完本文你大致能够明白: <ol><li>什么是持久化缓存,为什么做持久化缓存?...
  • 会计理论考试题

    2012-03-07 21:04:40
    1.计算机感染病毒后会产生各种现象,以下属于病毒现象的是__D__。 A、文件占用空间变大 B、发生异常蜂鸣声 C、屏幕显示异常图形 D、机内电扇不转 2. Windows98支持下面___C__网络协议。 A、Net BEUI B、IPX...
  • 这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。 1. 最基本的抓取 抓取大多数情况属于get请求,即直接从对方服务器上获取数据。 首先,Python中自带urllib及urllib2这两个模块,基本上...
  • 读者可以再结合下面这张图来理解上面 Bit 组件生命周期的内容。 <p><img alt="Bit-CLI.png" src="https://img-blog.csdnimg.cn/img_convert/0906b1302c3cef6c5fdb3dd6e4d8f2b3.png" /></p> <h3>Bit 部分概念解释 ...
  • 先进先出算法(FIFO)、循环检测法、最近最少使用页面先淘汰(LRU)、最不经常使用的页面先淘汰(LFU)、最近没有使用页面先淘汰(NUR)、最优淘汰算法(OPT)等。 (4)页式存储管理优、缺点 优点: ...
  • 消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    本课程通过一个ASP.NET网站的构建向学生阐释ASP.NET是什么,怎么来开发。 涵盖了代码规范、运行模型、服务控件、验证控件、数据绑定技术、ADO.NET技术、数据库技术、文件操作等内容。 所列出的内容均是ASP.NET开发...
  • 服务降级指的是当服务器压力剧增情况下,根据当前业务情况及流量对一些服务和页面有策略降级,以此释放服务器资源以保证核心任务正常运行。 熔断 熔断和降级两个比较容易混淆概念,两者含义并不相同。 ...
  • 服务降级指的是当服务器压力剧增情况下,根据当前业务情况及流量对一些服务和页面有策略降级,以此释放服务器资源以保证核心任务正常运行。 熔断 熔断和降级两个比较容易混淆概念,两者含义并不相同。 ...
  • 服务降级指的是当服务器压力剧增情况下,根据当前业务情况及流量对一些服务和页面有策略降级,以此释放服务器资源以保证核心任务正常运行。 熔断 熔断和降级两个比较容易混淆概念,两者含义并不相同。 ...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    该资料《iPhone开发秘籍:第2版》源代码 对应书籍资料见: iPhone开发秘籍:第2版(iphone开发必备佳作,在第一版基础上进行了全面修订和大量扩充) 基本信息 原书名: The iPhone Developer's Cookbook: ...
  • 关键渲染路径

    2021-01-08 14:32:44
    因为JS会打破前面我们讨论的内容。 我们都知道JavaScript的加载、解析与执行会阻塞DOM的构建,也就是说,在构建DOM时,HTML解析器若遇到了JavaScript,那么它会暂停构建DOM,将...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

以下属于页面设置的内容是什么