問候親愛的社區,操縱/更改window.screen屬性值
我的目標是欺騙屏幕對象的屬性,但我不能只需使用覆蓋屬性: window.screen[property] = number;
或Object.defineProperty(...)
因爲這些屬性爲只讀。
因此,我想克隆或重新創建屏幕對象,操縱屬性,然後覆蓋整個window.screen對象。
我嘗試:
var clone = Object.create(Screen.prototype);
Object.assign(clone, window.screen);
console.log(clone);
的原型克隆很好,但不是性能。 在嘗試使用Object.getOwnPropertyNames
和Object.keys
函數獲得它們(example here)後,它們必須位於原型中。 所以,我想這一點:
var clone = Object.create(Screen.prototype);
Object.assign(clone,Object.getPrototypeOf(window.screen));
console.log(clone);
其輸出誤差「類型錯誤:‘獲得availWidth’調用的對象沒有實現界面屏幕上」
使用for-in循環進行迭代並分配它們確實會輸出相同的錯誤。
所以看起來我必須實現界面屏幕,即使我不確定我的計劃是否在那之後工作。也許存在一個更簡單的解決方案。
其他的想法:
我可以分配完整的畫面對象作爲原型(像Object.create(screen)
),然後在對象上設置自己的屬性,但隨後的原始值仍然可讀。
也許我也可以通過使用Screen(...)
接口創建一個對象?
感謝您的幫助和意見!