2016-08-12 87 views
0

林需要模仿按組合鍵按Ctrl + 我怎麼能後,頁面加載運行觸發其 將組合:按Ctrl + IM找到這段代碼的JavaScript(jQuery的)事件觸發CTRL +右箭頭按鈕

$("input").focus(); 
var e = jQuery.Event("keydown"); 
e.which = 75; // # Some key code value 
$("input").val(String.fromCharCode(e.which)); 
$("input").trigger(e); 

,但我不明白我怎麼能insted的

e.which = 75; // # Some key code value 

e.which = ctrl code + right arrow code; // # Some key code value 
+0

聽起來像X/Y問題。你想做X,你認爲Y(發送Ctrl + RighArrow到輸入)會這樣做,所以你已經問過如何做Y.你最好問問怎麼做X.(作爲一個單獨的問題; *這個*問題已經被限定範圍。) –

回答

1

爲右箭頭鍵碼是39;你可以很容易地確定,通過鉤住它看看你爲which獲得的真實事件的價值。

要表明Ctrl鍵已關閉,請在事件上設置ctrlKeytrue

聚焦輸入後,您可能需要執行setTimeout(..., 0)技巧,讓瀏覽器有機會真正做到這一點。

所以:

setTimeout(function() { 
 
    $("input").focus(); 
 
    setTimeout(function() { 
 
     var e = jQuery.Event("keydown"); 
 
     e.which = 39; // 39 = right-arrow 
 
     e.ctrlKey = true; 
 
     $("input").trigger(e); 
 
    }, 0); 
 
}, 300);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<input type="text" value="one two three">

這就是說,它實際上並不執行Chrome上的行動,如果它在其他瀏覽器不確實還有我也不會感到驚訝。

+0

im try var e = jQuery.Event(「keydown」); e.which = 39; // 39 =右箭頭 e.ctrlKey = true; (「body」)。trigger(e); –

+0

但它不工作,不運行事件 –

+0

@ИванСеменов請參閱答案的最後一段以及對問題的評論。 –

相關問題