Time Control

Script allowing you to control time.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

Yazar
AGitUser0001
Günlük kurulumlar
0
Toplam kurulumlar
60
Değerlendirmeler
0 0 0
Versiyon
1.5.6.1
Oluşturulma
30.03.2024
Güncellenme
14.10.2025
Boyut
18,3 KB
Lisans
MIT
Geçerli
Tüm siteler

This script creates a global time object that allows you to control time in a webpage. This object is only available to access in Developer Tools contexts while time.hidden is true (default true). Developer Tools contexts are contexts where the call stack ends with an anonymous scope in Chrome or Firefox, or global code@ in Safari, as well as where a set of Developer Tools utilities exist as properties on the window object or its prototype chain. Currently, we check for $, $$, $x, clear, copy, inspect, keys, values. In top-level eval scopes while hidden and outside of Developer Tools contexts, we throw a ReferenceError when attempting to access time. We determine eval scopes using stack introspection. This behaviour is necessary to allow code that utilizes eval(str) to check for a global variable (str = 'time') to detect the variable normally. 'time' in window will still output true.

We wrap Date.now, Performance.prototype.now, AnimationTimeline.prototype.currentTime, and Event.prototype.timeStamp with a Proxy that adjusts what is returned when the state has been modified. We wrap setTimeout and setInterval with a Proxy that adjusts the timeout/interval parameter while the state is modified. requestAnimationFrame is wrapped with another Proxy that adjusts the DOMHighResTimeStamp by wrapping the input function if the state has been modified.

The time object contains:

  • toString(): string Returns the time as a string, should be equivalent to window.Date().

  • valueOf(): number Returns the time as a number, equivalent to time.now.

  • jump(newTime: number): void: Jumps time to newTime, a number.

  • shift(shiftTime: number): void: Shifts time by shiftTime, a number.

  • reset(resetTime: boolean = true, resetScale: boolean = true, resetDebug: boolean = true): void: Optionally syncs the scale and/or time with real time in the page.

  • get debug(): boolean:

  • set debug(value: boolean): void: A boolean that controls logging of calls.

  • get hidden(): boolean

  • set hidden(value: boolean): A boolean that controls whether the time object is available only in Developer Tools contexts or All contexts. Defaults to true.

  • get now(): number: The current time on the page. Should be equal to window.Date.now().

  • set now(value: number): void: Time jumps to value.

  • get pristine(): boolean: Whether time has been modified.

  • set pristine(value): void: If value is true, syncs

  • get real(): number: The actual time from DateConstructor.now().

  • get scale(): number: The current scale that time moves at.

  • set scale(value: number): void: When set, changes the scale of time.

  • storage

    • toString(): string Returns the time in storage as a string, should be equivalent to (new window.Date(time.storage.now)).toString().
    • valueOf(): number Returns the time in storage as a number, equivalent to time.storage.now.
    • get profile(): string | null: The current profile id, or null if unset.
    • set profile(value: string | null): void: Set the current profile to value, or unset profile if value is an empty string or null.
    • get profiles(): string[]: A list of profiles.
    • erase(profile?: string | null): Erase the profile profile, or the default profile if none is provided.
    • save(saveTime: boolean = true, saveScale: boolean = true, saveDebug: boolean = true): void:
    • load(loadTime: boolean = true, loadScale: boolean = true, loadDebug: boolean = true): void: Saves or loads the current time and/or scale in script storage.
    • reset(resetTime: boolean = true, resetScale: boolean = true, resetDebug: boolean = true): void: Resets the time and/or scale in script storage.
    • get now(): number: The current time in the script storage.
    • set now(value: number): void: Time is set to value in the storage.
    • get pristine(): boolean: Whether time has been modified in the storage.
    • set pristine(value): void: If value is true, syncs time to real time in storage.
    • get real(): number: The actual time grabbed from DateConstructor.now().
    • get scale(): number: The current scale that time moves at in the storage.
    • set scale(value: number): void: When set, changes the scale of time in storage.