Chromium 4.0.303.0 (36626) Mac
Chrome 4.0.295.0 dev Mac
Chrome 4.0.295.0 dev PC

It seems as though the content_script only runs once on each page
load. It's not continuously sending the selected txt to the background
page.

For example, the below content_script reveals that the only way to
actually capture the selected text is to quickly select some text
before a page finishes loading.
chrome.extension.sendRequest(window.getSelection().toString());
console.log(window.getSelection().toString());





On Jan 21, 1:45 pm, Arne Roomann-Kurrik <kur...@google.com> wrote:
> The sample still works for me in 4.0.295.0 (Official Build 35884) unstable
>
> Which version are you using?
>
> ~Arne
>
>
>
> On Thu, Jan 21, 2010 at 4:07 AM, soupenvy <sweater...@gmail.com> wrote:
> > Is there any particular change in Chrome that prevents this from
> > working in the latest builds?
>
> > I can't seem to get this sample working.
>
> > On Nov 24 2009, 2:52 pm, Arne Roomann-Kurrik <kur...@google.com>
> > wrote:
> > > As a note, you'll need to convert the result of getSelection() to a
> > > string or else it won't serialize correctly for the sendRequest call.
> > > window.getSelection().toString() is probably easiest.
>
> > > If you want to get access to the selected text in a popup, you'll need
> > > to pass it onward from the background page.  There's probably a better
> > > way to do this, but here's a background page which forwards the
> > > message:
>
> > > <html>
> > >   <head>
> > >     <script type="text/javascript">
> > >       var selection_callbacks = [];
>
> > >       function getSelection(callback) {
> > >         selection_callbacks.push(callback);
> > >         chrome.tabs.executeScript(null, { file:
> > > "contentscript.js" });
> > >       };
>
> > >       chrome.extension.onRequest.addListener(function (request) {
> > >         var callback = selection_callbacks.shift();
> > >         callback(request);
> > >       });
> > >     </script>
> > >   </head>
> > >   <body>
> > >   </body>
> > > </html>
>
> > > and here's a popup which displays it (it's probably not a great idea
> > > to just innerHTML the text, but this is just an example):
>
> > > <html>
> > >   <head>
> > >     <script type="text/javascript">
> > >       function onSelection(text) {
> > >         document.getElementById("output").innerHTML = text;
> > >       }
> > >       chrome.extension.getBackgroundPage().getSelection(onSelection);
> > >     </script>
> > >   </head>
> > >   <body>
> > >     <div id="output">
> > >       This should be replaced with the selected text
> > >     </div>
> > >   </body>
> > > </html>
>
> > > The content script is almost identical to Aaron's:
>
> > > chrome.extension.sendRequest(window.getSelection().toString());
>
> > > ~Arne
>
> > > On Nov 24, 11:08 am, Aaron Boodman <a...@google.com> wrote:
>
> > > > You can setup a content script that does it for you that your popup
> > > > communicates with. I do it with three files:
>
> > > > background.html (register this in your manifest with the
> > background_page key):
> > > > =============
> > > > function getSelection() {
> > > >   chrome.tabs.executeScript(null,  // by default, executes in current
> > tab
> > > >     {  file: "content_script.js"});
>
> > > > }
>
> > > > chrome.extension.onRequest.addListener(function(request) {
> > > >   alert("got selection: " + request);
>
> > > > });
>
> > > > content_script.js
> > > > ============
> > > > chrome.extension.sendRequest(window.getSelection());
>
> > > > popup.html
> > > > ========
> > > > chrome.extension.getBackgroundPage().getSelection();
>
> > > > I haven't tested any of this, but I think it should work :)
>
> > > > - a
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Chromium-extensions" group.
> > To post to this group, send email to chromium-extensi...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > chromium-extensions+unsubscr...@googlegroups.com<chromium-extensions%2Bunsu 
> > bscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/chromium-extensions?hl=en.
-- 
You received this message because you are subscribed to the Google Groups 
"Chromium-extensions" group.
To post to this group, send email to chromium-extensi...@googlegroups.com.
To unsubscribe from this group, send email to 
chromium-extensions+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/chromium-extensions?hl=en.


Reply via email to