2014-01-25 77 views
0

我給一個textbox的值,然後把重點放在它。如何在Javascript中觸發鍵盤事件?

var myEvent = document.createEvent('KeyboardEvent'); 

myEvent.initKeyEvent("keypress", true, true, window, true, false, false, false, 0, 97); 

document.getElementById('textbox').dispatchEvent(myEvent); 

document.getElementById('textbox').value="abcd"; 
document.getElementById('textbox').focus(); 

於是,我寫了下面的代碼創建一個鍵盤事件,並試圖解僱CTRL + 一個組合鍵(試圖選擇textbox內的文本)

但上面的代碼不會選擇文本框內的文本。

如何選擇創建鍵盤事件的文本?

+0

Similiar http://stackoverflow.com/questions/4067469/selecting-all-text -in-html-text-input-when-clicked – Musa

回答

1

您無法使用JavaScript模擬按鍵觸發瀏覽器按鍵行爲。你只能觸發你自己的功能。這意味着如果你添加一個按鍵事件監聽器來檢查按鍵是否被按下,然後執行某些操作,你可以觸發該行爲,但是你不能讓瀏覽器拉起它的「查找」欄當你觸發ctrl + F。這將是一個安全問題。

適當的方法是編寫自己的函數來選擇並在需要時觸發它。

這應該做你要找的內容:Live demo (click).

<input type="text" id="my-input" value="Some text."> 

的JavaScript:

var myInput = document.getElementById('my-input'); 

myInput.addEventListener('click', function() { 
    this.focus(); 
    this.select(); 
}); 

var event = new Event('click'); 
myInput.dispatchEvent(event); 
+0

據我所知,這是一個安全問題,但仍然有什麼辦法來實現這個功能? – Sanjeev

+0

@ user2856930看到我發佈的演示。 – m59

+0

你已經發布的選擇文本的例子很好,但我需要通過組合鍵實現其他功能。 – Sanjeev