No luck,
$ cat manifest.json
{ "name": "Quote"
, "version": "1.0"
, "description": "Quote the selected text."
, "toolstrips": [ "quote.html" ]
, "content_scripts" : [ { "js" : [ "quote.js"]
                        , "matches" : ["http://*/*";, "https://*/*";]
                        }]
}
$ cat quote.js
function quoteText() {
   window.open('quoteText')
   var t = window.getSelection().toString().replace(/./g, ">");
   var range = window.getSelection().getRangeAt(0);
   range.deleteContents();
   range.insertNode(document.createTextNode(t));
}
chrome.extension.onConnect.addListener(function (port) {
   port.onMessage.addListener(function (data) {
      window.alert(data)
      window.open('onmessage')
      quoteText();
   });
}
$ cat quote.html
<script>
function sendMessage(message) {
   window.open('sendmessage')
   chrome.tabs.getSelected(null, function(tab) {
      var port = chrome.tabs.connect(tab.id);
      port.postMessage(message);
   });
}
</script>
<div class="toolstrip-button"  onclick="sendMessage('quoteText');">
   <span>Quote</span>
</div>

It seems like i am only getting do the sendMessage function, but
postMessage never gets executed

Anatoly



On Thu, Sep 10, 2009 at 4:39 PM, Antony Sargent <[email protected]> wrote:
> Actually you can connect directly from your toolstrip to the content
> script'ed page.
> In your content script:
> chrome.extension.onConnect.addListener(function (port) {
>   port.onMessage.addListener(function (data) {
>     // do something with data here
>   }
> }
> In your toolstrip (sending a message to the currently selected tab):
> function sendMessage(message) {
>   chrome.tabs.getSelected(null, function(tab) {
>     var port = chrome.tabs.connect(tab.id);
>     port.postMessage(message);
>   });
> }
> Depending on your needs, you might want to keep the port around instead of
> using it only once in this example, or connect to more than just the
> currently selected tab.
> Also note that in the content script, you might need to use the workaround
> mentioned in crbug.com/17410 until it's fixed.
>
> On Thu, Sep 10, 2009 at 4:16 PM, Daniel Wagner-Hall <[email protected]>
> wrote:
>>
>> You want to be doing this in a content script
>> [http://code.google.com/chrome/extensions/content_scripts.html] rather
>> than a toolstrip.  A content script has access to the page's DOM, and
>> can interact with it.  Toolstrips are more for general UI for the
>> extension.
>>
>> You can see the results of console.log from a toolstrip if you go to
>> the page chrome://extensions and click the Inspect link next to the
>> toolstrip.  The results of console.log from a content script will be
>> in the page's log.
>>
>> You can communicate between toolstrips and content scripts (so that
>> pressing a button causes an action in the content script).  This can
>> (I believe only, though I may be wrong) be done by making a background
>> page, having the content script and toolstrip each connect to it
>> (using chrome.extension.connect), and passing messages over these
>> ports.
>>
>> On Thu, Sep 10, 2009 at 10:25 PM, Anatoly Yakovenko
>> <[email protected]> wrote:
>> >
>> > So i thought this might work:
>> >
>> > <script type="text/javascript">
>> > function quoteText()
>> > {
>> >   if(document.getSelection) {
>> >      document.getSelection.toString().replace(/^/g, ">");
>> >   }
>> > }
>> > </script>
>> >
>> > <div class="toolstrip-button"  onclick="quoteText()">
>> >   <span>Quote</span>
>> > </div
>> >
>> > but its not.  How come i can't get the selection?  also, console.log
>> > isn't working, my script isn't showing up in the debugger window as an
>> > option under scripts.  But if i use window.open("here"); it opens a
>> > window.
>> >
>> > >
>> >
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-extensions" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/chromium-extensions?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to