装备管理系统项目分析

整个项目采取的是混合开发模式;

页面的结构是:后台渲染,jsp页面的嵌套,js,jquery直接获取不到jsp页面的<irame>标签里面的dom
采用js API: contentDocument获取jsp嵌套页面的DOM

例如:  $("html").contentDocument.getElementById("这个值是iframe标签的ID"),获取完了irame后,在采用常规获取dom的方法获取ifame里面的DOM

注意:jsp页面可能是多层jsp嵌套,也就是多层的irame的嵌套,要多次获取嵌套的iframe标签,再进行dom操作

关于项目中的动态资源加载,采用jquery的getScript()API

$.getScript() 方法通过 HTTP GET 请求载入并执行 JavaScript 文件      $.getScript("xxx.js",fucntion(){xxxxxxxxx})

postMessage API :可以实现跨源通信,两个不同的脚本文件之间

例如: 1111.js window.postMessage("xxx","*")   ||  2222.js window.addEventListener("message",function(event){  event.data  data是事件对象的第一个值  })    ==>存在兼容性问题

当您使用postMessage将数据发送到其他窗口时,始终指定精确的目标origin,而不是*。 恶意网站可以在您不知情的情况下更改窗口的位置,因此它可以拦截使用postMessage发送的数据。 

如果这种嵌套多层iframe页面的网页,通常使用到top属性,类比window,top一般指代是否是嵌套顶层页面,常用来做判断实现页面跳转重定向,防止恶意嵌套网页到其他页面,因为其他页面里面嵌套的iframe也能通过dom获取到自己网页数据的数据(比如:用户登陆信息)等,相关属性还有parent,self等

posted @ 2018-09-07 14:55  前端大佬李嘉诚  阅读(256)  评论(0编辑  收藏  举报