问题标签 [window-object]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - window[name] 相当于动态访问 const 和 let 声明
闭包外的旧式 JavaScriptvar
声明是全局的(顶级范围),可以在浏览器中从window
对象访问。例如,声明var x = 3;
可以使用window['x']
.
给定声明的名称(字符串),您如何类似地访问const
或let
声明?
对于上面的例子,你如何获得值7
和21
“y”和“z”而不是undefined
?
摆弄代码:
https ://jsfiddle.net/g78ah6we/
编辑(为清楚起见添加了注释):
1. 虽然不是典型的,但有一些用例,例如在库中,有必要仅根据声明的名称访问声明。
2. 只需要读取权限(不会修改任何声明)。
3.window
提到对象只是为了展示旧的方式,但这个问题实际上并不是关于使用window
对象(或global
对象)。
javascript - 不使用 windows.print() 打印输入文本框的列表
如何打印用户输入文本框。在当前的 jsfiddle 中,我附上了我的演示。我正在使用窗口弹出窗口在新页面中显示当前 HTML 并仅打印显示的项目。如何在当前弹出窗口中显示输入框值?
javascript - 对象不支持属性或方法“someMethod”
我在 Windows 10 上的 IE 11 中收到此错误TypeError: Object doesn't support property or method 'someMethod'
。我正在使用 React 并调用文件someMethod
内部命名componentDidMount
的方法Full.js
。
该someMethod
方法是在外部src
使用 jQuery 的 react 目录外部定义的(而不是像这样在 react 内部)import $ from jquery
使用. 我正在按如下方式访问该方法:<script>
index.html
Full.js
这就是我在 IE 11 中遇到错误的地方,上面的代码在 Chrome、Firefox 甚至 Edge 中都可以正常工作,但在 IE 11 中却没有。我尝试在 IEwindow
的控制台中点击,但我找不到someMethod
但它是显示在 Firefox 和 Chrome 的控制台中。
该someMethod
方法methods.js
在code
目录外的src
目录中命名的文件中定义,当以以下方式调用此文件中定义的其他方法时,我遇到相同的错误:
这是 IE 关于Javascript Hoisting的问题吗?
PS:我core-js
在我的项目中安装了polyfill,我也尝试someMethod
用以下方式声明方法,但仍然没有运气:
javascript - 反应:将窗口中的值设置为未定义
我在我的 HTML 中为地理插件设置脚本,将结果分配给窗口,并尝试访问组件中的变量。问题是,在组件中,我可以 console.log(window) 并查看变量,但任何点符号都会导致未定义。
这是我的 HTML 中的脚本:
如您所见,脚本按预期工作。我尝试了两种不同的方法,并将它们都作为示例。
在我的 React 组件中,我使用 ComponentDidMount 方法来检索值并最终将它们设置为状态。
这就是问题所在:我可以控制台窗口并查看所有值,但是当我尝试在其中添加点符号时,我得到了未定义。
所以,我可以看到我需要的窗口变量,我可以在 Window 对象中访问它们。我已经研究过如何使用窗口对象,但这不是问题,因为我可以看到窗口对象中的变量。当我尝试使用它们时,它们只是变得不确定。我也尝试过使用 ComponentWillMount 甚至 UNSAFE_componentWillMount(),但这些都不是问题,因为我正在检索 Window 中的变量。
关于 React 如何工作的任何想法都会导致这个问题,以及我如何进入 Window 来获取变量?
javascript - Javascript 'this' 运算符
我很难理解为什么这个命令的输出不是 10。
另一方面,当 x 是全局的时,输出确实是 10。
为什么在第一个例子中它不打印'10'?x 是“window”对象的变量,所以“this”应该是window。我在这里想念什么?
angular6 - Angular 6 在库服务中注入窗口令牌
我有一个包含此网站帖子代码的库: https ://brianflove.com/2018/01/11/angular-window-provider/
在我的库中,我还有一项服务,我想在其中访问窗口对象。但是,在构造函数中添加以下内容不起作用:
尝试使用 cli 构建库时,出现以下错误:
收集的元数据包含将在运行时报告的错误:无法解析类型窗口。
我可以将其更改为使用任何类型而不是 Window,或者添加 @dynamic 作为注释,然后它就可以构建了。有没有更好的方法来做到这一点?
我不确定这是否是正确的方法,因为它还依赖于消费者在其主应用程序模块提供程序数组中设置 WINDOW_PROVIDERS。
javascript - Angular 2+检测关闭窗口
构建完成后,我无法检测到关闭窗口。
在我进行构建之前它工作得很好,没有触发 beforeunload 事件。我还尝试在新窗口的组件中放置一个主机监听器:
但这里也有同样的问题。构建完成后,我们不再到达调试器
有人知道我做错了什么吗?感谢您的帮助!
编辑解决方法
javascript - javascript variable shows in console.log but not in browser output
I am trying to reuse the output of the year variable. I will need to reuse the updated value [based on hashchange] in multiple functions later on. It displays the correct value in the browser console, but it doesn't display in the browser.
javascript - window.onstorage 不适用于 Angular
我正在尝试创建窗口事件侦听器,该侦听器必须侦听另一个选项卡中的事件,在该选项卡中打开了同一应用程序的另一个实例。
一些服务:
零件
WinRef
遗憾的是,没有触发 onstorage 事件。是否可以修复此解决方案,或者对于如何在 Angular 中同步两个选项卡有更好的想法?