在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C#  網(wǎng)絡(luò)安全  HTML/ 關(guān)于阻止頁面刷新或關(guān)閉的某種寫法看不懂

關(guān)于阻止頁面刷新或關(guān)閉的某種寫法看不懂

在項(xiàng)目中看到這樣一種阻止頁面刷新/關(guān)閉的方法,我能知道它最終實(shí)現(xiàn)的效果但是不能理解它的寫法。
在網(wǎng)上搜索Object.assign()得到的是用于合并對象(例子),
在這里為什么要和e綁定而且也沒有變量接收這個合并值,就有點(diǎn)不能理解。
還請前輩指導(dǎo)一下 :-)

...
mounted() {
    const returnValue = 'Are you sure you want to lose unsaved changes?';
    window.onbeforeunload = e => {
        if (!this.changedFiles.length) return undefined;

        Object.assign(e, {
            returnValue,
        });
        return returnValue;
    };
},
...
回答
編輯回答
赱丅呿

Object.assign

在這里完全等價于e.returnValue = returnValue。

寫成這個樣子,要么是為了炫技,要么是為了讓接手的人看不懂

returnValue

就是為了兼容性

window.onbeforeunload = function (e) {
  e = e || window.event;

  // 兼容IE8和Firefox 4之前的版本
  if (e) {
    e.returnValue = '關(guān)閉提示';
  }

  // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
  return '關(guān)閉提示';
};

https://developer.mozilla.org...

然而真的為了兼容性的話才不會用Object.assign
2018年1月17日 05:03
編輯回答
青檸

合并對象的時候,會改變e的值,增加了returnValue 屬性,創(chuàng)建自定義信息;

在window 對象上添加事件,是使用returnValue 屬性創(chuàng)建自定義信息的

自定義信息
自定義信息

2017年1月9日 11:30
編輯回答
淺時光

在即將離開當(dāng)前頁面(刷新或關(guān)閉)時執(zhí)行對象合并,或許在后續(xù)操作中會用到returnValue值做一些邏輯操作吧;目前看代碼只看見了合并這段,沒有看見后面的一些相關(guān)操作,就只能判斷可能會是后續(xù)操作會用到做一些邏輯處理

2018年8月15日 10:05