0
函數內部我有一個事件處理函數。到現在爲止還挺好。但在那個事件處理程序,我想捕獲輸入按下並替換爲HTML。跨瀏覽器事件處理程序必須捕獲[ENTER]
我已經做了這樣的:
CrossBrowserEventHandler(Editor, 'keyup', function(Event) { myFunctionRef(idname, Event) });
var myFunctionRef = function myFunction(idname, Event)
{
var keyCode;
if (!Event && window.event) {
Event = window.event;
}
if (Event) {
keyCode = (window.Event) ? Event.which : Event.keyCode;
if (keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}
}
PushText(idname); /* pushes the input from a rich text iframe to a textarea */
}
的跨瀏覽器的事件處理函數如下:
function CrossBrowserEventHandler(target,eventName,handlerName)
{
if (target.addEventListener) {
target.addEventListener(eventName, handlerName, false);
}
else if (target.attachEvent) {
target.attachEvent("on" + eventName, handlerName);
}
else {
target["on" + eventName] = handlerName;
}
}
在第一部分中我捕捉到的鍵碼13(回報)和替換它通過一個execCommand到一個HTML換行符。它這樣做,但兩次。它不會取消/刪除實際的返回按下事件。
任何想法(除了標準的建議使用JS框架,我不能有很多的原因,其中之一是實際學習的過程)?
在這種情況下,我想捕捉13,而不是10 – 2010-09-20 06:33:24
可以是事件冒泡的情況下 - 我已經編輯我的答案。 – VinayC 2010-09-20 07:24:43
不幸的是,它仍然通過execCommand之後的Enter。讓我詳細說明這一點。它用於富文本區域功能,並且由於大多數瀏覽器將返回轉換爲HTML段落(IE和FF)或包含在div中的換行符,因此爲了統一起見,我希望它將返回轉換爲換行符。 – 2010-09-20 07:52:30