ok Ive been doing some testing and I can reproduce the bug , <br>1) have your menu command test script installed<br>2) select the tab you want the menu items to appear in<br>3) open gmail or something in the background (if i open links from external applications it will auto open them in the background)
<br><br>it seems like the menu items get added to whatever tab is active at that time , even if that script is running on a different tab.<br>you may also be able to reproduce the effect by using setTimeout and swapping tabs but I havnt tested that yet.
<br><br><div><span class="gmail_quote">On 7/18/05, <b class="gmail_sendername"><a href="mailto:greasemonkey-request@mozdev.org">greasemonkey-request@mozdev.org</a></b> &lt;<a href="mailto:greasemonkey-request@mozdev.org">
greasemonkey-request@mozdev.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">--------- Forwarded message ----------<br>
From:&nbsp;Aaron Boodman &lt;<a href="mailto:zboogs@gmail.com">zboogs@gmail.com</a>&gt;<br>To:&nbsp;<a href="mailto:greasemonkey@mozdev.org">greasemonkey@mozdev.org</a><br>Date:&nbsp;Sun, 17 Jul 2005 23:12:59 -0700<br>Subject:&nbsp;Re: [Greasemonkey] Greasemonkey 
0.4, attempt III<br>Updated XPI. I think this works. Tested pretty extensively with framed<br>documents.<br><br>I also created a simple test user script for this which adds menu<br>items with the URL of the document they were added from. This makes it
<br>easy to see when/if it's screwing up.<br><br>===<br><br>But I do have a question. I noticed that Matt's script is trying to<br>add menu items for frames. GM_registerMenuCommand has never supported<br>this before, so he's probably hacking around it.
<br><br>In this XPI, I tried flattening all GM_registerMenuCommand calls into<br>a big list in the tools menu. Would like feedback on whether this<br>feels good or bad.<br><br>My reasoning here is that not doing this makes it difficult to use
<br>GM_registerMenuCommand in, for instance, gmail. You'd have to include<br>the user script on the top frame *and* the frame you actually want to<br>modify, then expose a function in the window's scope on the top frame,<br>
and then call it from the bottom frame. Which is kinda dorky.<br><br>The downside of flattening the list, like I've done here, is that<br>using GM_registerMenuCommand with include * can have a strange effect<br>when you're using something like gmail, which has tons of frames. In
<br>that case, you'd want to either make your include more specific, or<br>say something like:<br><br>if (window == top) {<br> &nbsp;GM_registerMenuCommand( ... )<br>}<br><br>Of course, the other thing to consider is that at some point there
<br>will probably be a context menu with GM_registerMenuCommand items, and<br>that would be the perfect place to put items from framed documents.<br>But that doesn't exist yet.<br><br>Anyway, interested in feedback on that policy point as well as general
<br>feedback on whether this works, as usual.<br><br>--<br>Aaron<br><br>On 7/17/05, Matt Labrum &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:darktempler@gmail.com">darktempler@gmail.com</a>&gt; wrote:
<br>&gt; hmm it seems sometimes &nbsp;when adding menu items with GM_registerMenuCommand<br>&gt; they persist into other tabs eg look at this screenshot<br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://random.thedt.net/error/gm_menuitem_bug.JPG" target="_blank">
http://random.thedt.net/error/gm_menuitem_bug.JPG</a><br>&gt;<br>&gt; the script which adds those menu items adds a new menu items for urls and<br>&gt; domains and frames. &nbsp;as you can see in that screenshot you can see the
<br>&gt; frames for <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mail.google.com" target="_blank">mail.google.com</a> are showing up in a different tab (there should<br>&gt; only be one skinner(url) and one skinner(domain) listed.
<br>&gt;<br>&gt; yet what i find even more odd is that when i open the menu items for the<br>&gt; gmail tab theres nothing there.<br>&gt; it seems to either missplace the menu items in wrong tabs or make menu items<br>&gt; persist over a few tabs.
<br>&gt; &nbsp;gmail tab seen here<br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://random.thedt.net/error/gm_menuitem_bug_gmailscreen.JPG" target="_blank">http://random.thedt.net/error/gm_menuitem_bug_gmailscreen.JPG
</a><br>&gt;<br>&gt; Im using the latest trunk nightly Mozilla/5.0 (Windows; U; Windows NT 5.1;<br>&gt; en-US; rv:1.8b4) Gecko/20050715 Firefox/1.0+<br>&gt; and the latest version of greasemonkey posted on this list<br>&gt; :)
<br>&gt;<br>&gt; _______________________________________________<br>&gt; Greasemonkey mailing list<br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Greasemonkey@mozdev.org">Greasemonkey@mozdev.org
</a><br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://mozdev.org/mailman/listinfo/greasemonkey" target="_blank">http://mozdev.org/mailman/listinfo/greasemonkey</a><br>&gt;<br>&gt;<br>&gt;</blockquote>
</div><br>