2016-09-18 176 views
1

我的朋友們,下面的代碼用於在Chrome中工作到52.x版本,但在最新版本中,它不再工作。你們有沒有任何想法,爲什麼它不起作用?OnInput事件不再有效

https://jsfiddle.net/2jtrs2m2/

<input type="text" id="test" /> 

<script type="text/javascript"> 

var my_event = document.createEvent("TextEvent");  
my_event.initTextEvent("textInput",true,false,window,"T"); 

document.getElementById("test").focus(); 

document.getElementById("test").dispatchEvent(my_event); 

</script> 

通常當我執行該代碼時,Chrome將插入字符T IN的輸入端。我不想在一些非常特殊的情況下使用document.getElementById(「xxx」)value =「T」,因爲我正在使用上面的代碼來觸發oninput事件,這個事件由於某種原因不再工作。

+1

奇怪!你的事件數據有console.log(my_event.data);顯示「T」。我會對解決方案感興趣:-)雖然我認爲這是一個鉻合金問題 –

+0

Yeap,你是對的。這真的很奇怪,在控制檯裏它看起來很好。 – Samul

+1

我可以確認從Chrome 52.0.2743.116更新到53.0.2785.116可以解決這個問題。 –

回答

0

嘗試使用document.exec命令 即; document.execCommand("insertText", false, "foo");

+0

工作:)這將是很好,如果它可能只會觸發execComand特定的輸入 – Samul