Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№697613-10-2013 12:48:49

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

W@ld_Lii пишет

1. При перемещении выделенного текста, искать его в новой вкладке, с помощью текущего поисковика.
2. При перемещении изображения, сохранять его в папку ~/Загрузки/

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ECB%20drag%20and%20go%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiivX/bJjz/2yX8/9sl/P/bJfz/2yX8/9kjfbnVn35RPyLo0T8oLHn/au6//6puf/+qbn//qm5//6quv/8ma3/bpj0/4e57P+Cte3/grXt/4K17P+Etu3/c6Hz51R9+0T/jKRE/7TC5//O1P//ztT//87U///O1P//0db//qq6/2yW9v9/sPH/d6vw/3ir8P94q/H/e63x/3Ke9udUfftE/4ujRP6wwOf/xc///8PN///Dzf//w83//8fQ//6ouP9tlPj/ear1/22i9P9uovP/bqLz/3Om9P9znfjnVH37RP+Lo0T/rr7n/7zK//+5x///ucf//7nH///AzP/+pbf/bZT5/3Sk9/9kmvf/ZZr2/2Wa9v9rn/f/c5z551R9+0T/i6NE/6u+5/+0xf//sML//7DC//+xwv//ucj//qO3/3CV+v94pfr/Z5n6/2eZ+v9nmfr/b5/7/3ed++dWfvtE/oykRP6sv+f+scX//63B//+twf//rcH//7bJ//6kuP9zlfrnfaH753ie++d4nvvneJ7753uf++d4mvrRaYz4PfuYrT38p7rR/q2/5/+svuf+rL7n/qu+5/+uwef9orbnZ4j4RFZ9+URVfflEVX35RFV9+URYfvlEaoz4PX+c9hL5p7cS+5itPf6MpET/i6RE/4ukRP+LpET/i6RE/JWrRAeqiUQHqohEB6qIRAeqiEQHqYhEB6mJRAiqiz0JqosS1qx5Etypaz3gpWBE4aVfROGlX0ThpV9E4aVfRNynaEQqt53nVcez51LHsudSx7LnUsay51PGs+c1u6TRCKqMPdypaz3nuHzR8MKE5/HCg+fxwoPn8cKD5/HDhefltHbnQL6p/4TYzv991sr/fdbK/33Wyv9/1sz/U8Wz5wepi0TgpWBE8MOG5/3Vmv/+1Jj//tSY//7UmP/+1p3/7bt8/z69qP9608f/btDC/27Qwv9u0ML/c9HE/1DEsOcHqItE4KVfRPDChef+0ZT//9CR///Qkf//0JH//9SY/+27fP89vKf/cc/B/2LKu/9jyrv/Y8q7/2nMvv9Pwq/nB6iKROClX0TwwYbn/s6P///Miv//zIv//8yK///Rlf/tunz/Pbyl/2fKu/9Uw7L/VMOz/1TDs/9dxrb/TsGt5wioikTgpF9E8MGG5/7Kif//yIP//8iD///Hg///zpH/7bp9/0K9pv93zsD/Zci4/2XIuP9lyLj/bcq8/1XDr+cIqItE4KVfRPDEjOf+0Jb//86Q//7OkP/+zZD//9Oc/+28gf83uaL/Rb6o/0G8pv9BvKb/Qbym/0K8pv87uqPnHrCVROKtb0TouH/n7byB/+27gP/tu4D/7buA/+29g//nt37/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Blocation%20%3D%3D%20%22chrome%3A//browser/content/browser.xul%22%20%26%26%20%28function%28event%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20var%20self%20%3D%20arguments.callee%3B%20%0A%20%20%20%20%20%20%20%20if%20%28%20%21event%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22dragstart%22%2C%20%22dragover%22%2C%20%22drop%22%5D.forEach%28function%28type%29%20%7B%20gBrowser.mPanelContainer.addEventListener%28type%2C%20self%2C%20false%29%20%7D%29%3B%0A%09%20%20%20%20%20%0A%09%20%20%20%20%20addDestructor%28function%28%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22dragstart%22%2C%20%22dragover%22%2C%20%22drop%22%5D.forEach%28function%28type%29%20%7B%20gBrowser.mPanelContainer.removeEventListener%28type%2C%20self%2C%20false%29%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20switch%20%28event.type%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%22dragstart%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.startPoint%20%3D%20%5Bevent.screenX%2C%20event.screenY%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.sourceNode%20%3D%20event.target%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20event.target.localName%20%3D%3D%20%22img%22%20%26%26%20event.dataTransfer.setData%28%22application/x-moz-file-promise-url%22%2C%20event.target.src%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20case%20%22dragover%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.startPoint%20%26%26%20%28Components.classes%5B%22@mozilla.org/widget/dragservice%3B1%22%5D.getService%28Components.interfaces.nsIDragService%29.getCurrentSession%28%29.canDrop%20%3D%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20case%20%22drop%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28self.startPoint%20%26%26%20event.target.localName%20%21%3D%20%22textarea%22%20%26%26%20%28%21%28event.target.localName%20%3D%3D%20%22input%22%20%26%26%20%28event.target.type%20%3D%3D%20%22text%22%20%7C%7C%20event.target.type%20%3D%3D%20%22password%22%29%29%29%20%26%26%20event.target.contentEditable%20%21%3D%20%22true%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%5BsubX%2C%20subY%5D%20%3D%20%5Bevent.screenX%20-%20self.startPoint%5B0%5D%2C%20event.screenY%20-%20self.startPoint%5B1%5D%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%5BdistX%2C%20distY%5D%20%3D%20%5B%28subX%20%3E%200%20%3F%20subX%20%3A%20%28-subX%29%29%2C%20%28subY%20%3E%200%20%3F%20subY%20%3A%20%28-subY%29%29%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20direction%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20t%20%3D%20content.getSelection%28%29.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28distX%20%3E%20distY%29%20direction%20%3D%20subX%20%3C%200%20%3F%20%22L%22%20%3A%20%22R%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20direction%20%3D%20subY%20%3C%200%20%3F%20%22U%22%20%3A%20%22D%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0421%u0441%u044B%u043B%u043A%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20event.dataTransfer.types.contains%28%22text/x-moz-url%22%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28event.dataTransfer.getData%28%22text/x-moz-url%22%29.split%28%22%5Cn%22%29%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28event.dataTransfer.getData%28%22text/x-moz-url%22%29.split%28%22%5Cn%22%29%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0418%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20event.dataTransfer.types.contains%28%22application/x-moz-file-promise-url%22%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28event.dataTransfer.getData%28%22application/x-moz-file-promise-url%22%29.split%28%22%5Cn%22%29%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28event.dataTransfer.getData%28%22application/x-moz-file-promise-url%22%29.split%28%22%5Cn%22%29%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22L%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0438%u043B%u0438%20%u0441%u0441%u044B%u043B%u043A%u0443%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28event.dataTransfer.getData%28%22application/x-moz-file-promise-url%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22R%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0438%u043B%u0438%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%20%u043D%u0430%20%u043C%u0435%u0441%u0442%u043E%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28event.dataTransfer.getData%28%22application/x-moz-file-promise-url%22%29%2C%200%2C%200%2C%200%2C%201%2C%20null%2C%20content.document%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0412%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20event.dataTransfer.getData%28%22text/unicode%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20event.dataTransfer.getData%28%22text/unicode%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//www.google.com/search%3Fq%3D%22%20+%20sel%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28%22http%3A//www.google.com/search%3Fq%3D%22%20+%20sel%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22L%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20sel%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22R%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0438%u0437%u0431%u0440%u0430%u043D%u043D%u043E%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20event.dataTransfer.getData%28%22text/unicode%22%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.startPoint%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%7D%29%28%29%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20............................................................................%0Athis.tooltipText%20%3D%20%22CB%20drag%20and%20go%20%5Cn%u0417%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u0442%20%u0436%u0435%u0441%u0442%u0438%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u041B%u041A%u041C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%5Cn%u041B%3A%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u043A%u043D%u043E%u043F%u043A%u0443%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0Acustombuttons.editButton%28%20document.getElementById%28%20this.id%20%29%20%20%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Жесты можно в кнопке посмотреть, изображения можно сохранять без запроса в папке Загрузки без подпапок с датой. Подпапки тоже можно прикрутить но мне нет на это времени.

Отредактировано bunda1 (13-10-2013 12:49:47)

Отсутствует

 

№697713-10-2013 13:17:05

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 200
UA: Firefox 22.0

Re: Custom Buttons

bunda1 я использую этот ваш код для значка с ID "identity-box" в левой части адресной строки.

Выделить код

Код:

document.getElementById('identity-box'). onmousedown = function(e){
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && e.ctrlKey) { 
          e.preventDefault();  
          // действие
            }
};

Я не могу избавиться от дефолтного действия — выскакивает контекстное меню, если e.button == 2, или попап насчёт подлинности сайта, если e.button == 0.

preventDefault() не помогает.

Что надо сделать?

Отредактировано Ferguss114 (13-10-2013 13:19:34)

Отсутствует

 

№697813-10-2013 13:18:56

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1, вместо того что бы искать выдаёт

Формат адреса неверен

URL недействителен и не может быть загружен.

    Адреса веб-сайтов обычно записываются в формате http://www.example.com/
    Убедитесь, что вы используете в качестве разделителя прямую косую черту (т.е. /).

Похоже пытается выделенный текст использовать в качестве адреса.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№697913-10-2013 13:32:50

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 24.0

Re: Custom Buttons

W@ld_Lii пишет

Перестала работать связка расширений для сохранения изображений QuickDrag+Download sort.

Easy DragToGo+
f6fa4ba2ca325d6b2d63c0d404b938b3.png

Отсутствует

 

№698013-10-2013 13:41:03

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Pony_Smile_Pack, Недоступно для Firefox 24.0

Поставил с китайского сайта. Эффект тот же, что и от QuickDrag+Download sort. Изображения в папку с датой не сохраняет.

Отредактировано W@ld_Lii (13-10-2013 13:56:45)


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№698113-10-2013 14:02:36

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Ferguss114 пишет

bunda1 я использую этот ваш код для значка с ID "identity-box" в левой части адресной строки.
Я не могу избавиться от дефолтного действия — выскакивает контекстное меню, если e.button == 2, или попап насчёт подлинности сайта, если e.button == 0.
preventDefault() не помогает.
Что надо сделать?

Вот рабочий пример:

Выделить код

Код:

// Дополнительные возможности для значка идентификации сайта в строке адреса ................................
addEventListener("click", function(e) { 
   e.preventDefault();
   e.stopPropagation();
   
   // ЛКМ без запроса открывает информацию о странице в вкладке 'Разрешения' ....
   if ( e.button == 0 ) {
        var doc = content.document;
        BrowserPageInfo( doc, ( (doc.location.protocol).slice(0,4) == "http") ? "permTab" : "generalTab" );
        }
        
   // ПКМ копирует текущий адрес ....     
   if ( e.button == 2) { 
        gClipboard.write( content.location );
                 
        // значок идентификации сайта мигает красным ....
        document.getElementById("identity-box").style.background = "red";
        setTimeout(function() { document.getElementById("identity-box").style.background = "" }, 500);
        }
}, true, document.getElementById("identity-box") );

Добавлено 13-10-2013 14:05:55

W@ld_Lii пишет

bunda1, вместо того что бы искать выдаёт
Похоже пытается выделенный текст использовать в качестве адреса.

Выделить код

Код:

// Выделенный текст ....                           
if ( direction == "U" ) {
// поиск текста в текущем поисковике в новой активной странице
gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/search?q=" + sel );                                          

   
if ( direction == "D") {
// поиск текста в текущем поисковике в новой фоновой странице
gBrowser.addTab("http://www.google.com/search?q=" + sel );

Добавлено 13-10-2013 14:09:39
Хотя да, в кнопке есть некоторые ошибки - ищет только в гугле и тп. :/

Отредактировано bunda1 (13-10-2013 14:09:58)

Отсутствует

 

№698213-10-2013 14:47:30

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 24.0

Re: Custom Buttons

W@ld_Lii пишет

Поставил с китайского сайта. Эффект тот же, что и от QuickDrag+Download sort. Изображения в папку с датой не сохраняет.

Поставить галочку в настройках.
8fc8fab3f4e8cc47fdd9f8318df9a2b1.png

Отсутствует

 

№698313-10-2013 14:49:54

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Pony_Smile_Pack, это для имени файла, а надо для папки.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№698413-10-2013 15:21:22

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

Не на повторном клике а на двойном правом клике. Мне кажется так лучше чем нажимать CTRL+SHIFT+ALT+средняя !

okkamas_knife пишет

господа не надо извращаться с комбинациями.  простота - залог удобства и юзабельности.

я хочу спрятать как можно дальше редактирование кнопки, чтобы обычный пользователь даже не знал что их можно редактировать или случайно удалить.
мояб воля я бы вообще убрал меню редактирования. (это в финальный релиз когда уже буду выкладывать готовое)
то что я делаю является своего рода стационарным приложением

Отредактировано lmiol (13-10-2013 15:22:59)

Отсутствует

 

№698513-10-2013 15:29:06

lilololilt
Участник
 
Группа: Members
Зарегистрирован: 15-08-2013
Сообщений: 93
UA: Firefox 24.0

Re: Custom Buttons

Есть возможность как-то закрыть вкладку принудительно? То есть не стандартная функция по кнопке Закрыть, а что-то типа завершение процесса?

Отсутствует

 

№698613-10-2013 16:19:02

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol пишет

я хочу спрятать как можно дальше редактирование кнопки, чтобы обычный пользователь даже не знал что их можно редактировать или случайно удалить.

Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет :/

Выделить код

Код:

addEventListener("popupshowing", function(e) {
   var targ = e.target;
   if ( targ.id == 'custombuttons-contextpopup' && targ.triggerNode == null || targ.triggerNode.id !== _id ) { 
        e.preventDefault();
        e.stopPropagation();
        }     
}, true );

Добавлено 13-10-2013 16:20:41

lilololilt пишет

Есть возможность как-то закрыть вкладку принудительно? То есть не стандартная функция по кнопке Закрыть, а что-то типа завершение процесса?

А в чём проблема?

Отредактировано bunda1 (13-10-2013 16:22:16)

Отсутствует

 

№698713-10-2013 16:41:03

lilololilt
Участник
 
Группа: Members
Зарегистрирован: 15-08-2013
Сообщений: 93
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

А в чём проблема?

В запросах "Вы действительно хотите выйти?" и в том, что для их блокирования нужно копать справочник, даже на википедии при редактировании это есть. Вот вместо блокирование всех событий хотелось бы моментальное принудительное закрытие вкладки.

Отсутствует

 

№698813-10-2013 17:01:50

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lilololilt пишет

В запросах "Вы действительно хотите выйти?" и в том, что для их блокирования нужно копать справочник, даже на википедии при редактировании это есть. Вот вместо блокирование всех событий хотелось бы моментальное принудительное закрытие вкладки.

Вот пример как это решить:

Выделить код

Код:

// Блокировать предупреждение при закрытии вкладки translit.ru ................................
addEventListener('beforeunload', function(e) { 
   if ( e.target.location.host == 'translit.ru' ) e.stopPropagation();
}, true, gBrowser );

Отсутствует

 

№698913-10-2013 17:17:43

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет :/

Выделить код

Код:

addEventListener("popupshowing", function(e) {
   var targ = e.target;
   if ( targ.id == 'custombuttons-contextpopup' && targ.triggerNode == null || targ.triggerNode.id !== _id ) { 
        e.preventDefault();
        e.stopPropagation();
        }     
}, true );

код помог заблокировал вооще везде =) даже там где вписывал код =)
спс, но теперь даже не знаю как вернуть =)
ща в профиле поищу данные об этой кнопке и там исправлю =)

уже нашел тем более там есть дампы

Отредактировано lmiol (13-10-2013 17:24:03)

Отсутствует

 

№699013-10-2013 17:20:41

lilololilt
Участник
 
Группа: Members
Зарегистрирован: 15-08-2013
Сообщений: 93
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

Вот пример как это решить:

А это то? Если это именно блокирование события, а не принудительное закрытие, то нет. Потому что у меня был похожий скрипт и там не одно событие и не два, которые позволяют показывать такой диалог. То есть кроме beforeunload есть еще.

Отсутствует

 

№699113-10-2013 17:29:09

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol пишет

код помог заблокировал вооще везде =) даже там где вписывал код =)

Странно у меня работает :/

lmiol пишет

спс, но теперь даже не знаю как вернуть =)

Oтключить инициализацию кнопок в настройках Custom Buttons + рестарт.

Добавлено 13-10-2013 17:34:46

lilololilt пишет

А это то? Если это именно блокирование события, а не принудительное закрытие, то нет. Потому что у меня был похожий скрипт и там не одно событие и не два, которые позволяют показывать такой диалог. То есть кроме beforeunload есть еще.

Можно проверить, в код вместо 'translit.ru' напиши 'ru.wikipedia.org' или что там у тебя можно узнать с:

Выделить код

Код:

alert(content.document.domain );

Отредактировано bunda1 (13-10-2013 17:34:46)

Отсутствует

 

№699213-10-2013 17:34:52

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

lmiol пишет: правда не совсем разобрался если добавляю в код - то открывается на CTRL+ЛКМ (а должна просто на правую)

скрытый текст

Выделить код

Код:

this.pref = 'network.proxy.type';

this.setState = function() {
   var state = cbu.getPrefs( this.pref );
   if ( state==0 ) {
        this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
}
this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver( this.pref, this.ob, false);
this.setState();


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs(this.pref);
          if (curstate==0) cbu.setPrefs(this.pref,1);
          if (curstate==1) cbu.setPrefs(this.pref,2);
          if (curstate==2) cbu.setPrefs(this.pref,4);
          if (curstate==4) cbu.setPrefs(this.pref,5);
          if (curstate==5) cbu.setPrefs(this.pref,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
          this.appendChild( cloneMenu ); };
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "", "centerscreen, resizable=no");
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // обработчик закрывает настройки прокси по клику на странице ....
   gBrowser.addEventListener("click", function() {
            this.removeEventListener("click", arguments.callee, true);
            try { win.close() } catch(e) {}; // закрыть окно
            }, true);
};

кстати исходя из этого кода вытекает минибаг
если я тыкаю ПКМ на этой кнопке и навожу на пункт из стандартного меню то подсказка с кнопок идет (http://img820.imageshack.us/img820/9472/ozm6.png)
а при тыке на любом из пунктов("Настройки" или "Панель меню" открывается окошко Параметров соединения и пропадает иконка на кнопке (http://img594.imageshack.us/img594/2382/m0pc.png)

да и кстати код позволяет плодить любое количество окон "Параметры соединения" (а 1но окно вроде как правильно логически, а то получится что можешь в каждом из окон выставить настройки =))

после ремонта вышеописанного это будет предел совершенства =)

Отредактировано lmiol (13-10-2013 17:42:55)

Отсутствует

 

№699313-10-2013 18:44:09

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol пишет

а при тыке на любом из пунктов("Настройки" или "Панель меню" открывается окошко Параметров соединения
да и кстати код позволяет плодить любое количество окон "Параметры соединения" (а 1но окно вроде как правильно логически, а то получится что можешь в каждом из окон выставить настройки

Выделить код

Код:

var s = 'network.proxy.type';

function toggleImage() {  
   var state = cbu.getPrefs( s );
   var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");
   
   if ( state==0 ) {
        icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
};
toggleImage();
gPrefService.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) }); 


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     if ( e.target.localName !== 'toolbarbutton' ) return;

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs( s );
          if (curstate==0) cbu.setPrefs(s,1);
          if (curstate==1) cbu.setPrefs(s,2);
          if (curstate==2) cbu.setPrefs(s,4);
          if (curstate==4) cbu.setPrefs(s,5);
          if (curstate==5) cbu.setPrefs(s,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { 
               var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
               this.appendChild( cloneMenu );
               };
          this.lastChild.tooltipText = '';
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ................................
function openConnections() {
   var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null);
   while( windows.hasMoreElements() ) {
          var win = windows.getNext();
          if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") {    
               win.focus();
               return;
               }
   };   
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no");   

   // добавить атрибут "prefwindow"
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); 
       e.target.documentElement.setAttribute("type", "prefwindow");
   }, true);
   
   // закрыть настройки прокси по клику на странице 
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c );
      try { win.close() } catch(e) {}; 
   });
};
lmiol пишет

кстати исходя из этого кода вытекает минибаг
если я тыкаю ПКМ на этой кнопке и навожу на пункт из стандартного меню то подсказка с кнопок идет ....
....и пропадает иконка на кнопке .....

:/

Отредактировано bunda1 (13-10-2013 18:44:38)

Отсутствует

 

№699413-10-2013 19:07:50

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

lmiol пишет:

    кстати исходя из этого кода вытекает минибаг
    если я тыкаю ПКМ на этой кнопке и навожу на пункт из стандартного меню то подсказка с кнопок идет ....
    ....и пропадает иконка на кнопке .....

:/

угу вот и мне нипоняяяятно=)
после верхнего кода иконка пропадает только после тыка на пункт Настройки из меню на ПКМ на кнопку прокси (открывающее Настройку панелей инструментов => http://img689.imageshack.us/img689/1013/fb3n.png)
возвращается иконка если тыкаю эти же Настройки с меню но вызванного с любого другого места

Отредактировано lmiol (13-10-2013 19:16:22)

Отсутствует

 

№699513-10-2013 19:30:48

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol пишет

после верхнего кода иконка пропадает только после тыка на пункт Настройки из меню на ПКМ на кнопку прокси (открывающее Настройку панелей инструментов => http://img689.imageshack.us/img689/1013/fb3n.png)
возвращается иконка если тыкаю эти же Настройки с меню но вызванного с любого другого места

Но иконка же возвращается или нет если закрыть настройку панелей инструментов, не понял.

Отсутствует

 

№699613-10-2013 19:32:29

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 200
UA: Firefox 22.0

Re: Custom Buttons

bunda1 пишет:

Вот рабочий пример:
................................................

Да, так работает, спасибо!
Но почему не работает этот вариант - через присваивание свойства onmousedown (или onclick, не суть важно)?

То есть работает, но вместе с нужным действием происходит и дефолтное,  preventDefault() и stopPropagation() не помогают.

Отредактировано Ferguss114 (13-10-2013 19:33:52)

Отсутствует

 

№699713-10-2013 19:51:36

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

Но иконка же возвращается или нет если закрыть настройку панелей инструментов, не понял.

нет не возвращается,
Схема возврата: в любом другом месте кликнуть правой кнопкой а потом выбрать в меню пункт Настройки Открывается Настройка панелей инструментов, вот после выхода из этого окна возвращается иконка

кажется что эта часть кода может быть связана с исчезновением (потому что в любой другой код вставить тоже самое происходит)

Выделить код

Код:

if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { 
               var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
               this.appendChild( cloneMenu );
               };
          this.lastChild.tooltipText = '';
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }

Отредактировано lmiol (13-10-2013 19:52:50)

Отсутствует

 

№699813-10-2013 20:07:21

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol
В коде toggleImage(); на this.onload = function() { toggleImage() };

Добавлено 13-10-2013 20:08:55

lmiol пишет

кажется что эта часть кода может быть связана с исчезновением (потому что в любой другой код вставить тоже самое происходит)

Мне кажется нет.

Отредактировано bunda1 (13-10-2013 20:08:55)

Отсутствует

 

№699913-10-2013 20:12:20

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

В коде toggleImage(); на this.onload = function() { toggleImage() };

не помогло =)

Мне кажется нет.

я не оспариваю я просто предположил =))))

Отредактировано lmiol (13-10-2013 20:14:11)

Отсутствует

 

№700013-10-2013 20:18:55

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

lmiol
У меня всё работает что показывает консоль после настройки панелей.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia
Язык отображения форума: [Русский] [English]