我在Chrome專用的web應用程序中有以下代碼,這個應用程序一直工作良好,附加的聽衆被解僱了,並且引發了跟蹤。Node.dispatchEvent(new CustomEvent('click'))不再觸發錨,因爲Chrome v53
const id = document.getElementById('me');
id.addEventListener('click', e => console.log('clicked', e), false);
const cancelled = !id.dispatchEvent(new CustomEvent('click'));
if (cancelled) {
console.log("canceled");
} else {
console.log("not canceled");
}
<a id="me" href="https://jsfiddle.net/">xxx</a>
但隨後由於鉻V53的,它不再工作時,它會觸發一個附加事件,但不再觸發並遵循錨?
我已經更改了代碼,並且此方法仍然有效。
const id = document.getElementById('me');
id.addEventListener('click', e => console.log('clicked', e), false);
const evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
const cancelled = !id.dispatchEvent(evt);
if (cancelled) {
console.log("canceled");
} else {
console.log("not canceled");
}
<a id="me" href="https://jsfiddle.net/">xxx</a>
我試圖在Firefox V48的片段,並有相同的結果,雖然該應用程序就不會在Firefox上運行。
有一些規範已更改,我試圖尋找答案,但一直未能找到原因?
我沒有看到與此相關的特定於M53的變化,你確定這不是M52,M51,或類似的? –
它可能是,我不知道更新之前的版本是什麼,並假定它是V52,但它可能在此之前。我相信所有人都在工作很長時間,即使這不是正確的代碼和行爲。 – Xotic750
調度不受信任的事件在M53中關閉(控制檯中出現警告,請參閱https://www.chromestatus.com/features/5718803933560832和https://crbug.com/520519(這會影響我的應用程序在Chrome上在Android和DevTools中的設備模擬 - 無法打開下拉選擇)(它已經在IE和FF,鉻決定也阻止它) –