[Ext] userChrome.js

Announce and Discuss the Latest Theme and Extension Releases.
Locked
User avatar
neomi
Posts: 2
Joined: August 8th, 2006, 5:43 pm
Location: cyber space

Post by neomi »

I tried to move the hole toolbox, but the same thing happened. btw, the custom toolbar window had no item in it.

Is it true that you have to keep the original structure of document for the browser to recognize it?
where?
User avatar
Diorser
Posts: 1009
Joined: June 22nd, 2005, 6:57 am

Post by Diorser »

Diorser wrote:
Diorser wrote:Is it possible to change default source viewer without adding any extension by using UserChrome.js or anything else but an extension ?
Coming back on that one and to clarify, and because currently using Fx1.5.0.6, is there a real technical explanation why it would not be possible to make a user js to open source with an external editor ? (something close to LaunchIE ?)
Just replacing the existing menu "View page source" command by an other editor would fit the need, without creating new button or new menus.

By replacing IE path of LaunchIE.js, it is at least possible to open an external editor instead of IE, but it opens a blank page only.

Code: Select all

      catch (ex)
      {         iexplore.initWithPath((Components.classes["@mozilla.org/process/environment;1"].
getService(Components.interfaces.nsIEnvironment).get("PROGRAMFILES") || "C:\\Program Files") + "\\Internet Explorer\\iexplore.exe");
      }

It looks weird to me that Firefox is able to open IE with a simple JS, but not an simple editor.
Then, let's try something easier.
Would it be possible to just pass the current url of the visited page to an external editor (not the html code, but just the url), by using the already existing "View Source Page Menu" and a simple JS ?
The external editor would then open itself the url.
(for background, just one line of customisation is enough with Opera !).
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


It depends on the editor, does it enable to open a file from a URL?
example: notepad.exe http://example.com/example.txt

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
User avatar
Diorser
Posts: 1009
Joined: June 22nd, 2005, 6:57 am

Post by Diorser »

Yes, I use PsPad which is able to directly open an url ( http://example.com ).
It should not be more complicated than opening IE !!
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


Try running PSPad from command line

Code: Select all

"C:\Program Files\PSPad editor\PSPad.exe" "http://static.mozillazine.org/forums/style/style-forum.css"

If you're editor doesn't open http://static.mozillazine.org/forums/style/style-forum.css, then it can't open a file directly from web location. Therefore you can't just simply modify LaunchIE script. It needs more than that.

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
User avatar
Diorser
Posts: 1009
Joined: June 22nd, 2005, 6:57 am

Post by Diorser »

PsPad is able to open all web locations, including http://static.mozillazine.org/forums/st ... -forum.css with no problem.
The problem is not PsPad, but what should be written in the JS file to pass the url to PsPad. Manually including the exact path of PsPad in the user JS file is not a problem.
I supppose it is a one command line, but my JS expertise is far not sufficient to pursue until the end.

Example for Opera > just add this line to a menu.ini file:
Item, "Open with PsPad"="Execute program, "D:\PsPad.exe", "%u" , , "PsPad""
and done !
Chad-)
Posts: 166
Joined: August 29th, 2005, 7:01 am

Post by Chad-) »

I unzipped the Context Search xpi and found a .js & a .xul file inside. I added them both to userChrome.js & everything works fine. But when I open a link in a new window & try to access the context search menu I don't know why I get this

Image

And how can I combine the 2 files into a single xul file for userChrome.xul?
Last edited by Chad-) on October 13th, 2006, 1:00 am, edited 1 time in total.
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


Edit script tag in contextsearch.xul to

Code: Select all

<script type="application/x-javascript" src="contextsearch.js"/>

and save contextsearch.xul and contextsearch.js in a same folder.
IMO, it's better than <a href="view-source:data:application/vnd.mozilla.xul+xml;base64,CjwhRE9DVFlQRSB3aW5kb3cgU1lTVEVNICJjaHJvbWU6Ly9icm93c2VyL2xvY2FsZS9icm93c2VyLmR0ZCI%2BCgo8b3ZlcmxheSBpZD0iY29udGV4dHNlYXJjaCIKICB4bWxucz0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCI%2BCiAgCiAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgogIDwhW0NEQVRBWwp2YXIgY29udGV4dHNlYXJjaCA9CnsKICBsb2FkOiBmdW5jdGlvbiAoKQogIHsKICAgIGNvbnRleHRzZWFyY2guY29udGV4dGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGV4dC1zZWFyY2htZW51Iik7CiAgICBjb250ZXh0c2VhcmNoLnBvcHVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRleHQtc2VhcmNocG9wdXAiKTsKICAgIAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRBcmVhQ29udGV4dE1lbnUiKS5hZGRFdmVudExpc3RlbmVyKCJwb3B1cHNob3dpbmciLGNvbnRleHRzZWFyY2gucG9wdXBoYW5kbGVyLGZhbHNlKTsKICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIiwgY29udGV4dHNlYXJjaC5sb2FkLCBmYWxzZSk7CiAgfSwKICAKICBwb3B1cGhhbmRsZXI6IGZ1bmN0aW9uKCkKICB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGV4dC1zZWFyY2hzZWxlY3QiKS5oaWRkZW4gPSAidHJ1ZSI7CiAgICAgICAgICAKICAgIGlmIChnQ29udGV4dE1lbnUuaXNUZXh0U2VsZWN0ZWQpCiAgICB7CiAgICAgIHZhciBzZWxlY3RlZFRleHQgPSBnZXRCcm93c2VyU2VsZWN0aW9uKDE2KTsKCiAgICAgIGlmIChzZWxlY3RlZFRleHQubGVuZ3RoID4gMTUpCiAgICAgICAgc2VsZWN0ZWRUZXh0ID0gc2VsZWN0ZWRUZXh0LnN1YnN0cigwLDE1KSArICIuLi4iOwogICAgICAgIAogICAgICB2YXIgbWVudUxhYmVsID0gZ05hdmlnYXRvckJ1bmRsZS5nZXRGb3JtYXR0ZWRTdHJpbmcoImNvbnRleHRNZW51U2VhcmNoVGV4dCIsIFsiIiwgc2VsZWN0ZWRUZXh0XSk7CiAgICAgIG1lbnVMYWJlbCA9IG1lbnVMYWJlbC5yZXBsYWNlKC9cc1xzLywiICIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGNvbnRleHRzZWFyY2gucmVidWlsZG1lbnUoKTsKICAgICAgY29udGV4dHNlYXJjaC5jb250ZXh0aXRlbS5zZXRBdHRyaWJ1dGUoImxhYmVsIiwgbWVudUxhYmVsKTsKICAgICAgY29udGV4dHNlYXJjaC5jb250ZXh0aXRlbS5zZXRBdHRyaWJ1dGUoImhpZGRlbiIsImZhbHNlIik7CiAgICB9CiAgICAKICAgIGVsc2UKICAgIHsKICAgICAgY29udGV4dHNlYXJjaC5jb250ZXh0aXRlbS5zZXRBdHRyaWJ1dGUoImhpZGRlbiIsInRydWUiKTsKICAgIH0gICAKICB9LAogIAogIHJlYnVpbGRtZW51OiBmdW5jdGlvbiAoKQogIHsKICAgIGNvbnN0IGtYVUxOUyA9ICJodHRwOi8vd3d3Lm1vemlsbGEub3JnL2tleW1hc3Rlci9nYXRla2VlcGVyL3RoZXJlLmlzLm9ubHkueHVsIjsKICAgIAogICAgdmFyIHNlYXJjaFNlcnZpY2UgPSBDb21wb25lbnRzCiAgICAgIC5jbGFzc2VzWyJAbW96aWxsYS5vcmcvYnJvd3Nlci9zZWFyY2gtc2VydmljZTsxIl0KICAgICAgLmdldFNlcnZpY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSUJyb3dzZXJTZWFyY2hTZXJ2aWNlKTsKICAgICAgICAgICAgICAgICAgICAgIAogICAgdmFyIHBvcHVwID0gY29udGV4dHNlYXJjaC5wb3B1cDsKICAgIHZhciBlbmdpbmVzID0gc2VhcmNoU2VydmljZS5nZXRWaXNpYmxlRW5naW5lcyh7IH0pOwogICAgICAgIAogICAgLy8gY2xlYXIgbWVudQogICAgd2hpbGUgKHBvcHVwLmZpcnN0Q2hpbGQpIHsKICAgICAgcG9wdXAucmVtb3ZlQ2hpbGQocG9wdXAuZmlyc3RDaGlsZCk7CiAgICB9CiAgCiAgICBmb3IgKHZhciBpID0gZW5naW5lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKICAgIHsKICAgICAgdmFyIG1lbnVpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGtYVUxOUywgIm1lbnVpdGVtIik7CiAgICAgIG1lbnVpdGVtLnNldEF0dHJpYnV0ZSgibGFiZWwiLCBlbmdpbmVzW2ldLm5hbWUpOwogICAgICBtZW51aXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgZW5naW5lc1tpXS5uYW1lKTsKICAgICAgbWVudWl0ZW0uc2V0QXR0cmlidXRlKCJjbGFzcyIsICJtZW51aXRlbS1pY29uaWMgY29udGV4dHNlYXJjaC1tZW51aXRlbSIpOwogICAgICBpZiAoZW5naW5lc1tpXS5pY29uVVJJKQogICAgICAgIG1lbnVpdGVtLnNldEF0dHJpYnV0ZSgic3JjIiwgZW5naW5lc1tpXS5pY29uVVJJLnNwZWMpOwogICAgICBwb3B1cC5pbnNlcnRCZWZvcmUobWVudWl0ZW0sIHBvcHVwLmZpcnN0Q2hpbGQpOwogICAgICBtZW51aXRlbS5lbmdpbmUgPSBlbmdpbmVzW2ldOwogICAgICBtZW51aXRlbS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAicmV0dXJuIGNvbnRleHRzZWFyY2gubWVudWl0ZW1jbGljayhldmVudCk7Iik7CiAgICB9CiAgfSwKICAKICBtZW51aXRlbWNsaWNrOiBmdW5jdGlvbiAoYUV2ZW50KQogIHsKICAgIC8vIG9ubHkgcHJvY2VzcyBtaWRkbGUgY2xpY2tzCiAgICBpZiAoYUV2ZW50LmJ1dHRvbiAhPSAxKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAKICAgIC8vIGhpZGUgY29udGV4dCBtZW51CiAgICB2YXIgbm9kZSA9IGFFdmVudC50YXJnZXQucGFyZW50Tm9kZTsKICAgIHdoaWxlIChub2RlLnBhcmVudE5vZGUpCiAgICB7CiAgICAgIGlmIChub2RlLmhpZGVQb3B1cCkgewogICAgICAgIG5vZGUuaGlkZVBvcHVwKCk7CiAgICAgIH0KICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsKICAgIH0KICAgIAogICAgLy8gY29udGludWUgd2l0aCBzZWFyY2gKICAgIGNvbnRleHRzZWFyY2guc2VhcmNoKGFFdmVudCk7CiAgfSwKICAKICBzZWFyY2g6IGZ1bmN0aW9uIChhRXZlbnQpIAogIHsKICAgIGlmICghYUV2ZW50LnRhcmdldC5pZCkKICAgICAgcmV0dXJuOwogICAgICAKICAgIHZhciBzZWFyY2hVcmwgPSBjb250ZXh0c2VhcmNoLmdldHVybChhRXZlbnQudGFyZ2V0LmVuZ2luZSwgZ2V0QnJvd3NlclNlbGVjdGlvbigpKTsgCiAgICAKICAgIHZhciBwcmVmcyA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL3ByZWZlcmVuY2VzLXNlcnZpY2U7MSJdCiAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2aWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lQcmVmU2VydmljZSk7CiAgICAKICAgIHZhciBsb2FkSW5CYWNrZ3JvdW5kUHJlZiA9IHByZWZzLmdldEJvb2xQcmVmKCJicm93c2VyLnRhYnMubG9hZEluQmFja2dyb3VuZCIpOwoKICAgIHZhciBsb2FkSW5Gb3JlZ3JvdW5kID0gZmFsc2U7CiAgICAKICAgIGlmIChhRXZlbnQuYnV0dG9uID09IHVuZGVmaW5lZCkgewogICAgICBsb2FkSW5Gb3JlZ3JvdW5kID0gbG9hZEluQmFja2dyb3VuZFByZWYgPyBhRXZlbnQuY3RybEtleSA6ICFhRXZlbnQuY3RybEtleTsKICAgIH0KICAgIAogICAgZWxzZSB7CiAgICAgIGxvYWRJbkZvcmVncm91bmQgPSBsb2FkSW5CYWNrZ3JvdW5kUHJlZiA%2FIHRydWUgOiBmYWxzZTsKICAgIH0KICAgIAogICAgaWYgKGFFdmVudC5zaGlmdEtleSkgewogICAgICBvcGVuTmV3V2luZG93V2l0aChzZWFyY2hVcmwpOwogICAgfSAgICAKICAgICAgICAKICAgIGVsc2UgewogICAgICB2YXIgbmV3VGFiID0gZ2V0QnJvd3NlcigpLmFkZFRhYihzZWFyY2hVcmwpOwogICAgICBpZiAobG9hZEluRm9yZWdyb3VuZCkgewogICAgICAgIHdpbmRvdy5nZXRCcm93c2VyKCkuc2VsZWN0ZWRUYWIgPSBuZXdUYWI7CiAgICAgIH0KICAgIH0KICB9LAogIAogIGdldHVybDogZnVuY3Rpb24gKHNlYXJjaEVuZ2luZSwgc2VhcmNoVmFsdWUpCiAgewogIAl2YXIgc2VhcmNoVXJsID0gc2VhcmNoRW5naW5lLmdldFN1Ym1pc3Npb24oc2VhcmNoVmFsdWUsIG51bGwpLnVyaS5zcGVjOwogIAl2YXIgZmluYWxVcmwgPSBuZXcgU3RyaW5nKCk7CiAgCQogIAlpZiAoIXNlYXJjaFZhbHVlKSAKICAgIHsKICAJCXZhciB1cmkgPSBDb21wb25lbnRzLmNsYXNzZXNbJ0Btb3ppbGxhLm9yZy9uZXR3b3JrL3N0YW5kYXJkLXVybDsxJ10KICAJCSAgICAgICAgICAgIC5jcmVhdGVJbnN0YW5jZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJVVJJKTsKICAJCXVyaS5zcGVjID0gc2VhcmNoVXJsOwogIAkJc2VhcmNoVXJsID0gdXJpLmhvc3Q7CiAgICB9CiAgICAKICAgIC8vIHJlY29tbWVuZGF0aW9uIGJ5IE1hdCBvbiBBTU8KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VhcmNoVXJsLmxlbmd0aDsgaSsrKSB7CiAgICAgIGZpbmFsVXJsICs9IChzZWFyY2hVcmxbaV0gPT0gIisiKSA%2FICIlMjAiIDogc2VhcmNoVXJsW2ldOwogICAgfQoKICAgIHJldHVybiBmaW5hbFVybDsKCX0KfQoKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBjb250ZXh0c2VhcmNoLmxvYWQsIHRydWUpOwogIF1dPgogIDwvc2NyaXB0PgogICAgCiAgPHBvcHVwIGlkPSJjb250ZW50QXJlYUNvbnRleHRNZW51Ij4KICAKICAgIDxtZW51IGlkPSJjb250ZXh0LXNlYXJjaG1lbnUiCiAgICAgIGluc2VydGJlZm9yZT0iY29udGV4dC1zZWFyY2hzZWxlY3QiCiAgICAgIGFjY2Vzc2tleT0iJnNlYXJjaC5hY2Nlc3NrZXk7Ij4KICAgICAgCiAgICAgIDxtZW51cG9wdXAgaWQ9ImNvbnRleHQtc2VhcmNocG9wdXAiCiAgICAgICAgb25jb21tYW5kPSJyZXR1cm4gY29udGV4dHNlYXJjaC5zZWFyY2goZXZlbnQpOyIvPgogICAgICAgIAogICAgPC9tZW51PgogICAgCiAgPC9wb3B1cD4KICAgIAo8L292ZXJsYXk%2B">combining</a> those 2 files.

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
Chad-)
Posts: 166
Joined: August 29th, 2005, 7:01 am

Post by Chad-) »

Zoolcar

The problem still arises when I open a new window. The context search menu is broken until I do something like reloading the page, opening another tab, the sidebar etc.
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


WFM

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
aronin
Posts: 243
Joined: November 9th, 2005, 7:31 pm

Post by aronin »

There is this old extension URL2NewTab (https://addons.mozilla.org/firefox/147/) ... basically opens a new tab from the URL Bar and Home button. I unzipped its xpi and found 2 JS files and 2 XUL files. Is there anyway to combine them and get them working.
My basic requirement is to be able to Open a New Tab from the Address Bar/Bookmarks/History. Can this be accomplished through userChrome.js.
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »

aronin wrote:My basic requirement is to be able to Open a New Tab from the Address Bar/Bookmarks/History.

You don't need an extension or userChrome.js script for that.
Use alt+enter for Address Bar (it is called Location Bar on Firefox), use middle click or ctrl+left click for Bookmarks/History

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
aronin
Posts: 243
Joined: November 9th, 2005, 7:31 pm

Post by aronin »

Zoolcar9 wrote:
aronin wrote:My basic requirement is to be able to Open a New Tab from the Address Bar/Bookmarks/History.

You don't need an extension or userChrome.js script for that.
Use alt+enter for Address Bar (it is called Location Bar on Firefox), use middle click or ctrl+left click for Bookmarks/History




:-) Ofcourse I know that and thats what I do now. But I want to open a new tab from address bar when I click 'Enter' and not 'Alt enter'... similarly, new tabs from bookmarks and history on left click and not 'ctrl+left click'.

Currently I use TMP to do all this, but TMP is too huge for my small needs, hence wanted to take the JS route. So is there a solution?

On the side, I had another issue. I have been using 'Open Tabs Relative' through Userchrome.js (code as provided on the first page). There is a small anomaly though. As an example, if I 'click' open multiple links from Bloglines, it opens it towards the end of tab bar instead of next to Bloglines Tab but if I Ctrl+Click the same links in Bloglines, it opens the links next to Bloglines Tab. Can't figure whats going on. But my best guess is when I directly click a link in Bloglines or even in Google Search (with 'open result in new windows' option), the links try to open a new window which are diverted into Tabs and the code does not consider them to be 'children' of the Tab. Any input here will be appreciated.

Thanks a ton.
aronin
Posts: 243
Joined: November 9th, 2005, 7:31 pm

Post by aronin »

zeniko wrote:I've added a "Tabs to the Right" snippet which is a little bit more sophisticated (if you open two tabs in a row, the second tab will be to the right of the first one).


I am finding differing behaviors on this code, as follows:
a. Open a new tab from address bar (Alt+Enter) -> Tab is opened next to current tab
b. Open a new tab from current tab (Ctrl+Click) -> Tab is opened next to current tab
c. Open another new tab from current tab (Ctrl+Click) -> Tab is opened next to the first tab opened from the current tab
d. Open a new tab through Ctrl+T -> New Tab is opened to the END of Tab Bar
e. Click a link in Bloglines/Digg Headlines/Google Search (with the preference to open search results in a new browser window) -> New Tab is opened to the END of Tab Bar

The first three behaviors (a,b,c) are fine. Are the last two behaviors (d & e) intended? Actually behavior (d) is perfect, but I do not understand behavior (e)?
old zeniko
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by old zeniko »

aronin wrote:e. Click a link in Bloglines/Digg Headlines/Google Search (with the preference to open search results in a new browser window) -> New Tab is opened to the END of Tab Bar

This behavior is pretty much untested and thus undefined. Anyway, try adding the following line to the snippet and see whether it fixes the issue:

Code: Select all

eval("nsBrowserAccess.prototype.openURI = " + nsBrowserAccess.prototype.openURI.toString().replace(/(loadOneTab\()"about:blank"/, '$1"data:text/html,"'));
Locked