亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何防止“window.location.replace()”被覆蓋?

如何防止“window.location.replace()”被覆蓋?

一只斗牛犬 2023-06-09 17:27:22
我需要一種方法來防止window.location.replace()被更改/覆蓋(例如:window.location.replace = function(){ return "Hi" }。起初,我嘗試過Object.freeze(window.location.replace)但這沒有做任何事情。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

您可以使用Object.defineProperty使其不可寫和不可配置:


'use strict';


Object.defineProperty(

  window.location,

  'replace',

  { value: window.location.replace }

);


// Throws in strict mode

window.location.replace = function(){ return "Hi" };


// In sloppy mode, the above assignment will fail silently


查看完整回答
反對 回復 2023-06-09
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

這里有兩件事:
strict mode:允許Object.freeze防止對象被編輯。沒有'嚴格模式',Object.freeze只能防止添加,刪除。
_Object.free只能對對象中的 1 層生效。

所以解決方案是:

'use strict';
Object.freeze(window.location);


查看完整回答
反對 回復 2023-06-09
  • 2 回答
  • 0 關注
  • 299 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號