SevenSeven wrote:Another fantastic snippet that adds some functions to the tab context menu, tested only with 2.0 branch 20060917:
Close All Tabs
Close Left Tabs
Close Right Tabs
Purge Tab History
<a href="data:application/x-javascript;charset=utf-8;base64,Lyo9PT09PT09IEFkZCBmdW5jdGlvbihzKSB0byB0YWIgY29udGV4dCBtZW51ID09PT09PT0qLw0KDQp2YXIgbW9yZUZ1bmNzRm9yVGFiQ29udGV4dG1lbnUgPSB7DQoJaW5pdDogZnVuY3Rpb24oKSB7DQoJCXZhciB0YWJNZW51ID0gZG9jdW1lbnQuZ2V0QW5vbnltb3VzRWxlbWVudEJ5QXR0cmlidXRlKGdCcm93c2VyLCAiYW5vbmlkIiwgInRhYkNvbnRleHRNZW51Iik7DQoJCXZhciBmdW5jcyA9IFtdOw0KCQl2YXIgbSA9ICJtb3JlRnVuY3NGb3JUYWJDb250ZXh0bWVudS4iOw0KCQlmdW5jcy5wdXNoKHsgbGFiZWw6ICJQdXJnZSBUYWIgSGlzdG9yeSIsIGNvbW1hbmQ6IG0rInB1cmdlVGFiSGlzdG9yeSgpOyIgfSk7DQoJCWZ1bmNzLnB1c2goeyBsYWJlbDogIkNsb3NlIFJpZ2h0IFRhYnMiLCBjb21tYW5kOiAiZ0Jyb3dzZXIuY2xvc2VSaWdodFRhYnMoZ0Jyb3dzZXIubUNvbnRleHRUYWIpOyIgfSk7DQoJCWZ1bmNzLnB1c2goeyBsYWJlbDogIkNsb3NlIExlZnQgVGFicyIsIGNvbW1hbmQ6ICJnQnJvd3Nlci5jbG9zZUxlZnRUYWJzKGdCcm93c2VyLm1Db250ZXh0VGFiKTsiIH0pOw0KCQlmdW5jcy5wdXNoKHsgbGFiZWw6ICJDbG9zZSBBbGwgVGFicyIsIGNvbW1hbmQ6ICJnQnJvd3Nlci5jbG9zZUFsbFRhYnMoKTsiIH0pOw0KCQl2YXIgaSA9IDA7DQoJCXdoaWxlIChpIDwgZnVuY3MubGVuZ3RoKSB7DQoJCQl0aGlzLmNyZWF0ZU1lbnVJdGVtKGZ1bmNzLCBpLCB0YWJNZW51KTsNCgkJCWkrKzsNCgkJfQ0KCQl0YWJNZW51LmFkZEV2ZW50TGlzdGVuZXIoInBvcHVwc2hvd2luZyIsIG1vcmVGdW5jc0ZvclRhYkNvbnRleHRtZW51LnNldFB1cmdlVGFiSGlzdG9yeVN0YXR1cywgZmFsc2UpOw0KCX0sDQoJDQoJY3JlYXRlTWVudUl0ZW06IGZ1bmN0aW9uKGZ1bmNzLCBpbmRleCwgdGFiTWVudSkgew0KCQl2YXIgbWVudWl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZW51aXRlbSIpOw0KCQltZW51aXRlbS5zZXRBdHRyaWJ1dGUoImxhYmVsIiwgZnVuY3NbaW5kZXhdLmxhYmVsKTsNCgkJbWVudWl0ZW0uc2V0QXR0cmlidXRlKCJvbmNvbW1hbmQiLCBmdW5jc1tpbmRleF0uY29tbWFuZCk7DQoJCXRhYk1lbnUuaW5zZXJ0QmVmb3JlKG1lbnVpdGVtLCB0YWJNZW51LmZpcnN0Q2hpbGQpOw0KCX0sDQoJDQoJc2V0UHVyZ2VUYWJIaXN0b3J5U3RhdHVzOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRhYk1lbnUgPSBkb2N1bWVudC5nZXRBbm9ueW1vdXNFbGVtZW50QnlBdHRyaWJ1dGUoZ0Jyb3dzZXIsICJhbm9uaWQiLCAidGFiQ29udGV4dE1lbnUiKTsNCgkJdmFyIG1lbnVpdGVtID0gdGFiTWVudS5nZXRFbGVtZW50c0J5QXR0cmlidXRlKCJsYWJlbCIsICJQdXJnZSBUYWIgSGlzdG9yeSIpWzBdOw0KCQl2YXIgdGFiID0gZ0Jyb3dzZXIubUNvbnRleHRUYWI7DQoJCWlmICh0YWIubG9jYWxOYW1lICE9ICJ0YWIiKSB0YWIgPSBnQnJvd3Nlci5tQ3VycmVudFRhYjsNCgkJdmFyIHdlYk5hdiA9IHRhYi5saW5rZWRCcm93c2VyLndlYk5hdmlnYXRpb247DQoJCWlmICh3ZWJOYXYuY2FuR29CYWNrIHx8IHdlYk5hdi5jYW5Hb0ZvcndhcmQpIG1lbnVpdGVtLnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCBmYWxzZSk7DQoJCWVsc2UgbWVudWl0ZW0uc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsIHRydWUpOw0KCX0sDQoJDQoJcHVyZ2VUYWJIaXN0b3J5OiBmdW5jdGlvbigpIHsNCgkJdmFyIHRhYiA9IGdCcm93c2VyLm1Db250ZXh0VGFiOw0KCQlpZiAodGFiLmxvY2FsTmFtZSAhPSAidGFiIikgdGFiID0gZ0Jyb3dzZXIubUN1cnJlbnRUYWI7DQoJCXZhciB0b0JlQ2xvbmVkQnJvd3NlciA9IGdCcm93c2VyLmdldEJyb3dzZXJGb3JUYWIodGFiKTsNCgkJdmFyIHNjcm9sbFBvc1ggPSB0b0JlQ2xvbmVkQnJvd3Nlci5jb250ZW50V2luZG93LnNjcm9sbFg7DQoJCXZhciBzY3JvbGxQb3NZID0gdG9CZUNsb25lZEJyb3dzZXIuY29udGVudFdpbmRvdy5zY3JvbGxZOw0KCQl2YXIgem9vbUZhY3RvciA9IHRvQmVDbG9uZWRCcm93c2VyLm1hcmt1cERvY3VtZW50Vmlld2VyLnRleHRab29tOw0KCQl2YXIgdGFiSGlzdG9yeSA9IHRhYi5saW5rZWRCcm93c2VyLndlYk5hdmlnYXRpb24uc2Vzc2lvbkhpc3Rvcnk7DQoJCXZhciBjdXJyZW50RW50cnkgPSB0YWJIaXN0b3J5LmdldEVudHJ5QXRJbmRleCh0YWJIaXN0b3J5LmluZGV4LCBmYWxzZSk7DQoJCXZhciBuZXdUYWIgPSBnQnJvd3Nlci5hZGRUYWIoKTsNCgkJaWYgKG5ld1RhYi5fdFBvcyA%2BIHRhYi5fdFBvcykgZ0Jyb3dzZXIubW92ZVRhYlRvKG5ld1RhYiwgdGFiLl90UG9zKzEpOw0KCQllbHNlIGlmIChuZXdUYWIuX3RQb3MgPCB0YWIuX3RQb3MpIGdCcm93c2VyLm1vdmVUYWJUbyhuZXdUYWIsIHRhYi5fdFBvcyk7DQoJCWdCcm93c2VyLnJlbW92ZVRhYih0YWIpOw0KCQl2YXIgbmV3VGFiSGlzdG9yeSA9IG5ld1RhYi5saW5rZWRCcm93c2VyLndlYk5hdmlnYXRpb24uc2Vzc2lvbkhpc3Rvcnk7DQoJCW5ld1RhYkhpc3RvcnkuUXVlcnlJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSVNIaXN0b3J5SW50ZXJuYWwpOw0KCQluZXdUYWJIaXN0b3J5LmFkZEVudHJ5KGN1cnJlbnRFbnRyeSwgdHJ1ZSk7DQoJCXZhciBvcGVuZWRCcm93c2VyID0gZ0Jyb3dzZXIuZ2V0QnJvd3NlckZvclRhYihuZXdUYWIpOw0KCQlvcGVuZWRCcm93c2VyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsgb3BlbmVkQnJvd3Nlci5tYXJrdXBEb2N1bWVudFZpZXdlci50ZXh0Wm9vbSA9IHpvb21GYWN0b3I7DQoJCQlvcGVuZWRCcm93c2VyLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oc2Nyb2xsUG9zWCwgc2Nyb2xsUG9zWSk7fSwgdHJ1ZSk7DQoJCW9wZW5lZEJyb3dzZXIud2ViTmF2aWdhdGlvbi5nb3RvSW5kZXgoMCk7DQoJfQ0KfTsNCm1vcmVGdW5jc0ZvclRhYkNvbnRleHRtZW51LmluaXQoKTsNCg0KDQovKj09PT09PT0gRnJvbSB0YWJtaXhwbHVzL2NvbnRlbnQvbWluaXQgZm9yIG1vcmVGdW5jc0ZvclRhYkNvbnRleHRtZW51ID09PT09PT0qLw0KDQpnQnJvd3Nlci5jbG9zZVJpZ2h0VGFicyA9IGZ1bmN0aW9uIChhVGFiKQ0Kew0KCWlmIChhVGFiLmxvY2FsTmFtZSAhPSAidGFiIikNCgkJYVRhYiA9IHRoaXMubUN1cnJlbnRUYWI7DQoNCglpZiAoIGFUYWIuX3RQb3MgPCB0aGlzLm1DdXJyZW50VGFiLl90UG9zICkNCgkJdGhpcy5tVGFiQ29udGFpbmVyLnNlbGVjdGVkSXRlbSA9IGFUYWI7DQoNCgl2YXIgY2hpbGROb2RlcyA9IHRoaXMubVRhYkNvbnRhaW5lci5jaGlsZE5vZGVzOw0KCWZvciAoIGkgPSBjaGlsZE5vZGVzLmxlbmd0aCAtIDE7IGkgPiBhVGFiLl90UG9zOyBpLS0gKQ0KCQl0aGlzLnJlbW92ZVRhYihjaGlsZE5vZGVzW2ldKTsNCn0NCg0KZ0Jyb3dzZXIuY2xvc2VMZWZ0VGFicyA9IGZ1bmN0aW9uIChhVGFiKQ0Kew0KCWlmIChhVGFiLmxvY2FsTmFtZSAhPSAidGFiIikNCgkJYVRhYiA9IHRoaXMubUN1cnJlbnRUYWI7DQoNCglpZiAoIGFUYWIuX3RQb3MgPiB0aGlzLm1DdXJyZW50VGFiLl90UG9zICkNCgkJdGhpcy5tVGFiQ29udGFpbmVyLnNlbGVjdGVkSXRlbSA9IGFUYWI7DQoNCgl2YXIgY2hpbGROb2RlcyA9IHRoaXMubVRhYkNvbnRhaW5lci5jaGlsZE5vZGVzOw0KCWZvciAoIGkgPSBhVGFiLl90UG9zIC0gMTsgaSA%2BPSAwOyBpLS0gKQ0KCQl0aGlzLnJlbW92ZVRhYihjaGlsZE5vZGVzW2ldKTsNCn0NCg0KZ0Jyb3dzZXIuY2xvc2VBbGxUYWJzID0gZnVuY3Rpb24gKCkNCnsNCgl2YXIgY2hpbGROb2RlcyA9IHRoaXMubVRhYkNvbnRhaW5lci5jaGlsZE5vZGVzOw0KDQoJZm9yICh2YXIgaSA9IGNoaWxkTm9kZXMubGVuZ3RoIC0gMTsgaSA%2BPSAwOyAtLWkpIHsNCgkJaWYgKGNoaWxkTm9kZXNbaV0gIT0gdGhpcy5tQ3VycmVudFRhYikNCgkJdGhpcy5yZW1vdmVUYWIoY2hpbGROb2Rlc1tpXSk7DQoJfQ0KCXRoaXMucmVtb3ZlVGFiKHRoaXMubUN1cnJlbnRUYWIpOw0KfQ%3D%3D">code</a>
I don't see much use for 'Purge Tab History'. What will this code look like without this particular function?
Also in your previous snippet of opening in New Tab, a few things:
- Can we have History Items opening a New Tab
Also, when I Ctrl+Click a bookmark, the bookmark opens the bookmark in a new tab + a blank tab
Similarly when I Alt+Enter from addressbar, it opens the url in a new tab + a blank tab
I know I would never do any of these since thats the whole purpose of adding this code (i.e. not to use ctrl+click or alt+enter), just thought of bringing it to your attention.