| Index: chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js
|
| ===================================================================
|
| --- chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js (revision 0)
|
| +++ chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js (revision 0)
|
| @@ -0,0 +1,50 @@
|
| +var speakKeyStr;
|
| +
|
| +function speakSelection() {
|
| + var focused = document.activeElement;
|
| + var selectedText;
|
| + if (focused) {
|
| + try {
|
| + selectedText = focused.value.substring(
|
| + focused.selectionStart, focused.selectionEnd);
|
| + } catch (err) {
|
| + }
|
| + }
|
| + if (selectedText == undefined) {
|
| + var sel = window.getSelection();
|
| + var selectedText = sel.toString();
|
| + }
|
| + chrome.extension.sendRequest({'speak': selectedText});
|
| +}
|
| +
|
| +function onExtensionMessage(request) {
|
| + if (request['speakSelection'] != undefined) {
|
| + if (!document.hasFocus()) {
|
| + return;
|
| + }
|
| + speakSelection();
|
| + } else if (request['key'] != undefined) {
|
| + speakKeyStr = request['key'];
|
| + }
|
| +}
|
| +
|
| +function initContentScript() {
|
| + chrome.extension.onRequest.addListener(onExtensionMessage);
|
| + chrome.extension.sendRequest({'init': true}, onExtensionMessage);
|
| +
|
| + document.addEventListener('keydown', function(evt) {
|
| + if (!document.hasFocus()) {
|
| + return true;
|
| + }
|
| + var keyStr = keyEventToString(evt);
|
| + if (keyStr == speakKeyStr && speakKeyStr.length > 0) {
|
| + speakSelection();
|
| + evt.stopPropagation();
|
| + evt.preventDefault();
|
| + return false;
|
| + }
|
| + return true;
|
| + }, false);
|
| +}
|
| +
|
| +initContentScript();
|
|
|
| Property changes on: chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|