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 |