先上錯誤信息:chrome
Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/...瀏覽器
一個簡單的頁面只有這麼段jside
document.addEventListener('touchstart', function(event) { event.preventDefault(); }, false);
報的一個好錯誤,真是日了狗了,一直這麼寫的代碼,什麼狀況?
原來,是新版chrome,給這個preventDefault返回了naive,再也不是清除瀏覽器默認行爲了。
那這怎麼搞?
如今mdn上搜索一番:
event.cancelable 瀏覽器默認行爲是否能夠被禁用
event.defaultPrevented 瀏覽器默認行爲是否已經被禁用
好像mdn上的event.preventDefault()方法還沒更新到最新
那這就能夠解決問題了,若是event.cancelable=false,是什麼意思?不讓開發者主動去禁用麼?
可是event.defaultPrevented也是false,這個又怎麼說?明明是沒有清除默認行爲,卻又禁止清除默認行爲!!!code
好吧,我是一個眇小的開發者,我只能該本身的代碼:開發
document.addEventListener('touchstart', function(event) { // 判斷默認行爲是否能夠被禁用 if (event.cancelable) { // 判斷默認行爲是否已經被禁用 if (!event.defaultPrevented) { event.preventDefault(); } } }, false);
本人資歷尚淺,沒法給各大社區提這個小意見get
不過,這樣一來,好像不用咱們在手動清除默認行爲了io