Object.watch() 适用于所有浏览器?

2024-04-26

请注意Object.Watch https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch and Object.Observe https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe现已弃用(截至 2018 年 6 月)。


我一直在寻找一种简单的方法来监视对象或变量的更改,我发现Object.watch(),Mozilla 浏览器支持,但 IE 不支持。所以我开始四处寻找是否有人写过某种类似的东西。

我唯一发现的是一个 jQuery 插件 http://plugins.jquery.com/watch/,但我不确定这是否是最好的方法。我当然在我的大多数项目中使用 jQuery,所以我不担心 jQuery 方面......

无论如何,问题是:有人能给我展示 jQuery 插件的工作示例吗?我在使其工作时遇到问题...

或者,有谁知道有更好的跨浏览器替代方案吗?

回答后更新:

谢谢大家的回复!我尝试了这里发布的代码:http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html

但我似乎无法让它与 IE 一起工作。下面的代码在 Firefox 中运行良好,但在 IE 中不起作用。在 Firefox 中,每次watcher.status被改变时,document.write() in watcher.watch()被调用,您可以在页面上看到输出。在 IE 中,这不会发生,但我可以看到watcher.status正在更新值,因为最后一个document.write()调用显示正确的值(在 IE 和 FF 中)。但是,如果回调函数没有被调用,那么这是毫无意义的......:)

我错过了什么吗?

var options = {'status': 'no status'},
watcher = createWatcher(options);

watcher.watch("status", function(prop, oldValue, newValue) {
  document.write("old: " + oldValue + ", new: " + newValue + "<br>");
  return newValue;
});

watcher.status = 'asdf';
watcher.status = '1234';

document.write(watcher.status + "<br>");

(抱歉交叉发布,但我对类似问题的回答在这里效果很好)

我创建了一个小对象.watch 垫片 http://gist.github.com/384583不久前为此。它适用于 IE8、Safari、Chrome、Firefox、Opera 等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Object.watch() 适用于所有浏览器? 的相关文章

  • Firefox(仅限)动态表单操作不起作用

    控制台为操作属性返回空白 我已经移动了 file upload attr action io cfm action updateitemfile item id agenda modal attr data defaultitemid 周围
  • $.ajax(); 之间的区别和 $.ajaxSetup();

    有什么区别 ajax and ajaxSetup 在 jQuery 中如下 ajax cache false and ajaxSetup cache true 另外 哪一个是最好的选择 以下将阻止all无论您使用哪种 jQuery 方法 g
  • document.registerElement - 为什么我们需要指定“prototype”和“extends”?

    考虑我想扩展本地button元素 并创建我自己的super button元素 据我所知 它必须遵循以下模式 var SuperButton document registerElement super button prototype Ob
  • Javascript:打乱数组中的对象组

    我有一个对象数组 我已按键排序 group如下 使得所有具有相同值的对象group在索引中彼此相邻data 例如 var data foo cat group house foo cat group house foo cat group
  • 开始使用 Three.js 中的行进立方体

    我是 Three js 的新手 正在寻找教程来帮助我开始了解如何在 Three js 中使用 Marching Cubes 到目前为止 我在 Three js 中看到的一些使用它的项目对我来说有点复杂 所以一个简单的教程会很好 谢谢 像您一
  • 如何创建到任何 fancybox 框的直接链接

    我需要当我单击任何使用 fancybox 的内容时 它会生成一个特定的 URL 因此当我将此链接发送给某人时 它会打开我想要的特定框 例如 fancybox net home当我点击第一张图片时 链接仍然存在fancybox net hom
  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc
  • JSLint 错误:意外的“这个”

    无法理解为什么 JSLint 对我的使用感到惊讶this在下面的代码中 function testConstr x use strict this joker Whyyy sooo seriousss this x x 对于这两个属性分配
  • 检测 iPad Safari 用户的最佳方法

    添加用于检测 iPad Safari 用户的代码的最佳方法是什么 我的意思是我们应该使用 1 CSS 通过链接媒体 2 JS 通过navigator对象 我听说使用用户代理字符串并不是检测 iPad 的最佳方法 因为存在不一致的情况 请建议
  • Liferay ajax 请求和 JSON 响应

    我是 Liferay 的新人 我使用服务生成器来创建数据库 我手动填充它们 最终我可以使用 JSP 调用它们PersonLocalServiceUtil class 现在我想在我的程序中使用Ajax 例如 有属性的人personID per
  • 在 Typescript 中从基类创建子类的新实例[重复]

    这个问题在这里已经有答案了 我想创建新实例Child班级来自Base类方法 这有点复杂 但我会尽力解释 这是一个例子 class Base constructor clone Here i want to create new instan
  • 未捕获的安全错误:阻止了具有原点的框架...访问具有原点的框架

    我已经为 SAP 解决方案 无论什么 制作了一个组件 该组件通过 iframe 嵌入到报告中 在 SAP 平台 BO 上部署报告后 我收到此错误 在 Chrome 上 但在 IE 或 FF 上也不起作用 Uncaught SecurityE
  • 启动 onclick 比使用 document.onload 更快

    我有带有链接的 html 页面 我想在其中附加一个功能onclick事件 一种方法当然是 a href save php Save a 但我知道这不是最佳做法 所以我反而等待window onload 循环遍历链接并将保存功能附加到链接re
  • 如何消除 jQuery Mobile 中的悬停延迟?

    我正在使用 jQuery Mobile 制作一个网站 当我将鼠标悬停在按钮上时 它会更改其类 并扩展其颜色 但感觉需要半秒左右才能完成 有没有办法减少这种延迟 您可以覆盖hoverDelay无需修改 jQuery Mobile js 库 要
  • 如何制作实时jquery效果?

    我想制作一个实时提要阅读器 并且我想要一个解决方案 使新项目无需刷新页面即可出现 并且具有像friendfeed一样的滚动效果 你可以在这里看到我在说什么 http www vimeo com 4029954 http www vimeo
  • TinyMCE:将 CSS 类属性与 formatselect-dropdown 格式结合使用

    我想定制格式 http wiki moxiecode com index php TinyMCE Configuration theme advanced blockformats在 TinyMCE 中格式选择下拉菜单 http wiki
  • Escape String - 在 Javascript 中输出rails字符串[重复]

    这个问题在这里已经有答案了 我正在尝试将字符串值分配给 erb 文件中的 javascript 对象 如下所示 var data name 问题是 如果name is Tom s small ears 的输出data name将会Tom x
  • 在javascript中我们如何识别一个对象是Hash还是Array?

    我的 JSON 调用的输出可以是数组或哈希 我如何区分这两者 现代浏览器支持Array isArray obj method See MDN https developer mozilla org en US docs Web JavaSc
  • ESLint 如何集成到 Create React App 中?

    当我跑步时npx create react app some name 为我创建了一个简单的 React 项目 当我随后窥视package json 似乎有一些 ESLint 存在的证据 因为有 eslintConfig extends r
  • jQuery - 动画CSS背景大小?

    我正在尝试对背景图像的大小进行动画处理 但它不起作用 从以下代码中知道为什么吗 this animate opacity 1 background size 70px 48px right 39 top 45 250 注意 所有其他属性都可

随机推荐

  • 是否可以在activerecord中定义与SQL表达式对应的虚拟属性?

    我正在寻找类似虚拟属性的东西 但这可以在数据库级别上工作 假设我有一个字段age我想添加一个 虚拟字段 age quintile这等于age 5 但可以这样说 Person select age quintile agv height gr
  • Python 元组作为键慢吗?

    我正在尝试实现字典中排序元组的快速查找 回答 元组 3 8 是否有关联值 如果有 它是什么 的问题 令元组中的整数从下方以 0 为界 从上方以 max int 为界 我继续使用 Python 的 dict 但发现速度相当慢 解决此问题的另一
  • 获取以 UTC 表示的当前时间的最简单 PowerShell 方法

    我已查看该帖子在 PowerShell 中创建具有特定 UTC 日期时间的 DateTime 对象 https stackoverflow com questions 10487011 creating a datetime object
  • 非活动状态下的 Spring Boot 堆使用情况

    我在本地部署了一个非常简单的 spring boot 应用程序 它只有一个类 控制器 差不多就这样了 我注意到堆分配并不稳定 并且有峰值和突然下降 为什么会这样 我没有对应用程序进行过一次调用 A view from VisualVM 事实
  • 释放指针向量,但内存仍在使用中

    我不知道下面的代码有什么问题 我正在删除所有指针 但是当我使用 top 命令查看内存时 我可以看到仍然有大量内存分配给程序 我在这里缺少一些东西来释放内存吗 include
  • 重新加载 tslib 触摸屏校准

    背景 我正在开发一个基于 Qt 的大型 GUI 它处理与触摸屏的所有用户交互 该程序的设计使得用户不需要访问命令提示符即可执行任何操作 包括重新校准触摸屏 我写了一个 tslib 的模仿品ts calibrate作为运行的实用程序QWidg
  • 触发 Outlook 事件:更改签名

    有谁知道是否可以在 Outlook 2016 中触发签名更改事件 IE 模拟点击签名 如下图所示 我正在尝试根据选择的 发件人 地址自动更改签名 我可以捕获 发件人 地址更改 如所回答here https stackoverflow com
  • Android 布局:运行第二次布局

    我正在扩展 TextView 并加载自定义字体 我在列表视图中使用这个自定义文本视图 当我滚动列表时 有时会收到以下调试消息 布局期间 com sample CustomTextView 52afae4c V ED ID 0 27 27 4
  • 在 R 中使用 tcltk 在弹出窗口(表格小部件)中显示数据 - 为什么它会删除最后一行数据?

    我正在努力创建一个小部件来使用 tcl tk 在弹出窗口中查看表格 我正在遵循这个例子 http r 789695 n4 nabble com Tck tk help td1837711 html http r 789695 n4 nabb
  • Laravel 中的下拉选择表单

    我可以知道我的代码有什么问题吗 我在数据库中注册了三个用户类型名称 但是我的代码将导致三个下拉菜单 每个菜单上都有单独的用户类型名称 foreach user types as usertype div class form group F
  • Julia 中的指针解引用(unsafe_load(ptr) 有效,但 unsafe_wrap(Array, ptr, 1) 段错误)

    我正在尝试取消引用指针unsafe load and unsafe wrap 我发现unsafe load不过效果很好unsafe wrap如果取消引用指向可变结构的指针 则会崩溃 玩具示例 mutable struct Wrapper d
  • 在Android中解析HTML

    我正在尝试从网页解析 android 中的 HTML 由于该网页格式不正确 我得到SAXException Android 有没有办法解析 HTML 我刚刚遇到这个问题 我尝试了一些东西 但决定使用JSoup http jsoup org
  • 如何从文本文件读取数据并将其推回向量?

    我有一个文本文件 test txt 它存储了我的数据 如下所示 每个分隔符字段之间有一个空格 代码 名称 Coy 045 Ted Coy1 054 Red Coy2 我如何从文件中读取这些数据并将其插入向量中 vector
  • GoogleCalendarAPI 接受/拒绝事件

    我正在研究谷歌日历API并使用node js作为构建我的应用程序的平台 我能够使用身份验证过程创建事件 并使用身份验证时生成的访问令牌创建日历事件 我的问题是 假设如果我们有任何参加者参加活动 并且我想使用参加者一方的日历 API 接受 拒
  • android OkHttpClient请求错误

    我正在尝试使用我的 Android 应用程序在 mysql 数据库中存储一些数据 我正在使用 okhttp3 发送请求 但在这一行出现错误 client newCall request execute 我在本地机器和在线上尝试过 但它给了我
  • Unity 自定义检查器和子检查器

    我正在Unity 2017 2 中开发一个小型ARPG 我尝试为我的游戏的能力蓝图类实现自定义编辑器 基本上 AbilityBluePrint 包含在运行时生成能力所需的所有信息 包括一个 Effect ScritpableObjects
  • 在 SQL 数据库中,一对一关系何时应位于同一个表中,何时应位于不同的表中?

    任何人都可以提供一些示例 说明在 SQL 数据库中什么时候在同一个表上保留一对一关系是更好的选择 而什么时候将它们放在单独的表上更有意义 当您有多个实体 它们都必须能够充当另一个实体的外键 并且 几个实体 既有公共属性又有唯一属性 并且您希
  • Emacs-helm 中的选项卡(任何内容)不会自动完成当前的最佳匹配

    While trying to autocomplete a file e g to open a file with C x C f Emacs helm shows a list of possible candidates If I
  • Spring 3.1 中的默认配置文件

    在我的应用程序中 我有豆子注释 Profile prod and Profile demo 正如您可以猜到的那样 第一个用于连接到生产数据库的 bean 第二个注释使用一些假数据库的 bean HashMap或其他 使开发更快 我想要的是默
  • Object.watch() 适用于所有浏览器?

    请注意Object Watch https developer mozilla org en US docs Web JavaScript Reference Global Objects Object watch and Object O