- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Javascript 强制 [object DOMWindow] 进入对象原型(prototype)中的函数时遇到问题。我得到的完整错误如下:
未捕获的类型错误:对象 [object DOMWindow] 没有方法“positionconvert”
基本上我所做的是在特定条件下在对象原型(prototype)内部创建一个 var interval
,它用 window.setInterval()
计数:
var interval = window.setInterval(this.alertanimate, 500);
alertanimate
函数在同一个原型(prototype)中,并在此行中使用 this
变量:
this.positionconvert(this.alerticon, -69, 55);
(positionconvert 是另一个函数,alerticon 是一个对象)。问题是当我得到 window.setInterval
涉及的 js 开始假设 this
是 DOM 而不是对象原型(prototype)时,就像我预期的那样,出现上述错误。当我将它硬编码为与特定对象一起工作时,它可以工作,但是在这个变量中的某个地方 - 传递 this
变量失去了与对象的连接。我希望这一切都有意义吗?我做错了什么?
最佳答案
将 this.alertanimate
传递给 setIntervall
会失去与主对象的连接。 this
在函数中指代的内容完全由调用函数的方式 定义。如果将函数传递给 setTimeout
,则 this
将引用 window
。
你可以这样做:
var self = this;
window.setInterval(function() {
self.alertanimate();
}, 500);
在较新的浏览器中,您还可以使用 .bind()
[MDN] (请参阅文档了解替代实现):
window.setInterval(this.alertanimate.bind(this), 500);
关于Javascript "this"变量从特定对象切换到 DOMWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7007494/
我在 Javascript 强制 [object DOMWindow] 进入对象原型(prototype)中的函数时遇到问题。我得到的完整错误如下: 未捕获的类型错误:对象 [object DOMWi
我正在尝试获取链接的值,但我在警报中获取的是 [Object DOMWindow],而不是链接作为我的对象。 这是我的代码: function showToggle(link) { var x
我正在尝试使用我在 http://swip.codylindley.com/DOMWindowDemo.html在我的网站上,当访问者点击链接时创建灯箱/domwindow 弹出窗口。 不幸的是,当用
我为获取浏览器位置做了这个漂亮的小片段: if (!window.position) { window.position = function() { return navig
出于某种原因,我似乎无法在 DOMWindow 对象上使用 JSON.stringify。例如: console.log(window.self); // Outputs a hierarchical
我正在开发一个 firefox 扩展,它需要我通过过滤掉一些 HTTPRequests 来拦截页面加载。我使用给定的说明做到了 here .请注意,我的问题来自此链接的内容。 我使用了 HTTPObs
我有一系列 DIV 元素,单击这些元素时会触发 DOMWindow 打开事件。没问题。 然后我必须添加键盘辅助功能。卫生部!! 我向 DIV 添加了 tabindex 属性,允许用户从一个 DIV 切
无法在“DOMWindow”上执行“postMessage”:提供的目标源(“https://www.youtube.com”)与收件人窗口的源(“https://my-site.ru”)不匹配。 N
我想在我的网站上添加 Google+ 徽章。当我从 Google 配置工具复制/粘贴代码时,徽章不起作用。我认为问题可能出在 JavaScript 中,所以我创建了一个空的 index.html 并复
我们正在使用 video.js与 youtube plugin . 加载视频时,控制台显示错误。 Failed to execute 'postMessage' on 'DOMWindow': The
我正在学习 javascript。我只是想了解为什么下面代码中的 strip2() 函数不起作用,并返回错误。 function strip1(str) { return str.replace
当您在浏览器或 Node.js 中运行以下代码时,您将获得注释中列出的预期结果: Object.prototype.toString.call(undefined); // "[object Unde
如何在 Google Chrome 中检查变量是否属于 DOMWindow 类型?当我尝试引用 DOMWindow 类型时,我收到 ReferenceError。例如,当我尝试在控制台中检查 wind
我正在尝试在模式打开时开始播放 YouTube 视频,并且在完成之前不会进入下一页。 我的以下脚本在 Chrome 中有效,但在 Firefox 和 Edge 中产生此错误。 Failed to ex
我在尝试创建可重用函数来将元素设置为可拖动或可放置时遇到问题。 为此作品创建 2 个独立的函数: makedroppable($('.empty_child_article_image'), hand
我正在尝试按照教程在我的 Trello 看板列表中创建一张新卡。 我从这里获取 key https://trello.com/app-key按照本教程 https://developers.trell
我知道如何修复此错误,但有没有人能全面解释为什么会出现此错误? var fn = function () { return fn(); }(); //uncaught TypeError: Pro
这是我的代码: function loadOffer(id) { window.open("http://www.google.com.com","mywindow"); } 它是在点击时启动
我尝试使用 YouTube iFrame Player API 将 YouTube 加载到我的网页中,但加载时出现以下错误: Failed to execute 'postMessage' on 'D
我有一个带有 jQuery DOMWindow 的网页,它从 iFrame 加载其内容。我需要从 iFrame 访问父窗口的元素。这可能吗? 这是从我的主页打开的 DOMWindow 的配置:
我是一名优秀的程序员,十分优秀!