2012-09-14 2 views
0

브라우저 용 표준 이벤트 실행 메커니즘을 잘 알고 있지만 키보드를 통해 커서 및 삽입 지점 탐색을 시뮬레이트하는 JavaScript 라이브러리가 필요합니다. 특히 삽입 포인터를 움직일 수있는 라이브러리가 필요하지만 가상 화살표 키로 탐색하는 동안 가상 시프트 키가 "누른"경우 텍스트의 선택 범위를 확장하거나 축소 할 수 있습니다. 이러한 교차 브라우저 JavaScript 라이브러리가 있습니까?요소의 키보드 조작을 시뮬레이션하기위한 브라우저 간 JavaScript 라이브러리가 있습니까?

이것은 브라우저 자동화 라이브러리에서 사용하기위한 것으로 Selenium과 같은 제안은 부적절합니다. 또한 가능한 경우 jQuery와 같은 큰 JavaScript 프레임 워크에 의존하는 라이브러리는 사용하지 않는 것이 좋습니다. 마지막으로, 페이지 내에서 주사 할 수 있어야하므로, 자바 스크립트가 아닌 솔루션은 내 요구 사항에 맞지 않습니다. 이 자바 스크립트 함수를 호출 한 후

function moveCursor() { 
    var editor = document.getElementById("editor"); 
    editor.focus(); 

    // Hypothetical API here. This would need to be 
    // adjusted to be used with the actual library. 
    // Assume the pressKey() is defined as: 
    // 
    // pressKey(element, keyCode, isShiftPressed) 
    // 
    keyboardSimulator.pressKey(editor, keys.END); 
    keyboardSimulator.pressKey(editor, keys.LEFT, true); 
    keyboardSimulator.pressKey(editor, keys.LEFT, true); 
} 

:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8" /> 
    <title>keyboard</title> 
</head> 
<body> 
    <input id="editor" value="hello world" /> 
</body> 
</html> 

나는, 자바 스크립트, 이런 식으로 뭔가를 호출 할 수 있도록하려면 :

나는 이런 식으로 뭔가를 보이는 HTML 페이지가 가정 내 페이지에서 편집기 요소에 초점을두고 "hello world"값에서 "ld"를 선택해야합니다.

답변

0

사실 는이 일을 도서관이있다. 그 중

하나가 SYN라고하며 bitovi FuncUnit에 포함되어 있습니다 : 매우 영리한 선택 범위의 조작 및 텍스트 속성을 설정하여, 아직

http://funcunit.com

https://github.com/bitovi/syn

+0

또한 여기에 있습니다 : http://yuilibrary.com/yui/docs/event/simulate.html –

0

해당 라이브러리가 존재하지 않습니다. 이것이 실제로 허용된다면 엄청난 보안 허점이 될 것입니다. 당신이 할 수있는 유일한 일은 키 스트로크를 잡아서 그들에게 행동하는 것입니다, 예를 들어 자바 스크립트에서 생성 한 몇 가지 특별한 기능을 트리거 할 때 특별한 핫키를 만드는 것입니다.

은 (BTW : 컨트롤에 키 입력을 보낼 표시 등 LastPass 사용자와 나사로와 같은 일부 확장, 실제로 단지 텍스트의 속성을 설정합니다.)

+0

, 그것은 *이다 *이 동작을 시뮬레이션 할 수 있습니다. 나는 이것이 보안 위험을 제기하지 않는다고 추정한다. 나는 누군가가 이미 그러한 시뮬레이션을 튼튼하게하기 위해 엣지 케이스를 처리하기위한 다리 작업을 해주기를 바라고있다. – JimEvans

+0

음, 재미있는 각도입니다. 너가 무언가를 우연히 만나거나 너 자신 해결책을 해결하면 나는 알린다. (항상 새로운 자동화 기법을 염두에두고 :) –

+0

그래, 나는 분명히 할 것이다. YUI의이 페이지 (http://yuilibrary.com/yui/docs/event/simulate.html#simulating-key-events)에 따르면 FireFox는 키 이벤트를 기쁜 마음으로 삽입 할 것입니다. Bitovi Syn은 아마도 현재 최고의 실용적인 솔루션 일 것입니다.하지만 Ember js 앱에 통합하기가 어렵다는 것을 알고 있습니다. –

관련 문제