【问题标题】:Firefox. TypeError: 0 is read-only火狐。 TypeError: 0 是只读的
【发布时间】:2018-06-12 08:56:53
【问题描述】:

我仅在 Firefox 中遇到此错误。
找不到问题的根源。
堆栈跟踪参考 node_modules/jquery/dist/jquery.js
终点是 jquery
style[ name ] = value; 中 jquery 的 style 方法中的这一行,但我的应用程序代码中没有 style 方法调用。 也许旧的 Angular.js 在 ng-style 评估中调用它?
任何建议表示赞赏。

Angular 1.6
Angular 5.2.9(混合应用)
JQuery 3.3.1(是的,我知道它很丑,我们将在我们应用程序的新 Angular 版本中摆脱它) 火狐 60.0.1

UPD错误日志。

TypeError: 0 是只读堆栈跟踪: style@webpack-internal:///./node_modules/jquery/dist/jquery.js:6498:6 set@webpack-internal:///./node_modules/jquery/dist/jquery.js:6764:5 run@webpack-internal:///./node_modules/jquery/dist/jquery.js:6725:4 tick@webpack-internal:///./node_modules/jquery/dist/jquery.js:7094:5 jQuery.fx.tick@webpack-internal:///./node_modules/jquery/dist/jquery.js:7436:9 schedule@webpack-internal:///./node_modules/jquery/dist/jquery.js:6813:3 ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:421:17 onInvokeTask@webpack-internal:///./node_modules/@angular/core/esm5/core.js:4956:24 ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:420:17 Zone.prototype.runTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:188:28 ZoneTask.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:496:24 ZoneTask/this.invoke@webpack-internal:///./node_modules/zone.js/dist/zone.js:485:28 timer@webpack-internal:///./node_modules/zone.js/dist/zone.js:2025:17

【问题讨论】:

  • @JaromandaX 已经读过了。没有什么帮助,因为我们的项目非常大,我不知道是什么代码导致了错误我的代码中也没有 defineProperty 或 freeze 。所以它应该是一些全局属性,类似的东西。
  • 我们根本看不到你的项目 - 所以,你有更好的机会:p
  • 您需要发布您的整个错误日志,如果我们看不到它,我们无能为力
  • @AlekseySolovey 添加了错误日志。无法发布任何代码,因为项目非常大,问题是我不知道哪个模块导致错误。

标签: javascript jquery angularjs firefox


【解决方案1】:

在 Mozilla web inspector 中调试后,我发现 jquery style 方法影响了哪个元素样式。 这是一些遗留代码,必须在过渡结束后删除元素。

$('.digit')
.css({ transform: 'translateY(2.5em)' })
.animate('slow', () => { $('.digit').remove(); });

如您所见,在未定义 css 属性对象的情况下调用了 animate 方法。 不知道什么版本的 JQuery 允许这样的语法,但我解决了这样的错误更改代码

const $digit = $('.digit');
$digit.css({ transform: 'translateY(2.5em)' });
$digit.on('transitionend webkitTransitionEnd oTransitionEnd', () => {
    $digit.remove();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2011-08-02
    • 2013-10-30
    相关资源
    最近更新 更多