|
 
- UID
- 7811
- 精华
- 5
- 积分
- 297
- 经验
- 1151
- 声望
- 110
- 财产
- 1141 MT
|
4楼
发表于 2007-12-27 20:39
| 只看该作者
在标签菜单中增加"粘贴并转到",改自
http://zoolcar9.lhukie.net/mozilla/userChr...ab-and-go.uc.js
只换成中文菜单
如果想在后台加载,修改
var loadInBackground = nsPreferences.getBoolPref(prefString, false);
为
var loadInBackground = nsPreferences.getBoolPref(prefString, true);- (function() {
- if (typeof pg2_PasteAndGo == "function") return;
- // create menuitem
- var newItem = document.createElement("menuitem");
- newItem.id = "paste-and-go-in-tab";
- newItem.setAttribute("label", "\u7C98\u8D34\u5E76\u8F6C\u5230");
- newItem.setAttribute("oncommand", "this.pasteAndGo();");
- newItem.setAttribute("accesskey", "G");
- newItem.pasteAndGo = function() {
- var prefString = "userChromeJS.PasteAndGoInTab.loadInBackground";
- var loadInBackground = nsPreferences.getBoolPref(prefString, false);
- var tabbrowser = getBrowser();
- var paste = readFromClipboard();
- if (!paste) return;
- if (tabbrowser.mContextTab.localName == 'tabs') {
- tabbrowser.loadOneTab(paste, null, null, null, loadInBackground, true);
- } else {
- tabbrowser.mContextTab.linkedBrowser.loadURI(paste, null, null, true);
- if (!loadInBackground) tabbrowser.selectedTab = tabbrowser.mContextTab;
- }
- }
- // add menuitem to tab context menu
- var tabContext = document.getAnonymousElementByAttribute(
- gBrowser, "anonid", "tabContextMenu");
- tabContext.insertBefore(newItem, tabContext.firstChild);
- // disable menuitem if there's no text in clipboard
- tabContext.addEventListener("popupshowing", function(aEvent) {
复制代码 改进版本:判断剪贴板中的内容是不是URL,不是则隐藏菜单(感谢drag&go脚本中的正则式)- /*-----------------------------------------------------
- Paste to Tab and Go
- Add Paste and Go menuitem to tab context menu
- to paste URL from clipboard
- and load it in current tab or a new tab
- -----------------------------------------------------*/
- /* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Paste to Tab and Go script for userChrome.js
- *
- * The Initial Developer of the Original Code is LouCypher.
- * Portions created by the Initial Developer are Copyright (C) 2006
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s) (alphabetical order):
- * LouCypher <loucypher.moz@gmail.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
- (function() {
- if (typeof pg2_PasteAndGo == "function") return;
- // create menuitem
- var newItem = document.createElement("menuitem");
- newItem.id = "paste-and-go-in-tab";
- newItem.setAttribute("label", "\u7C98\u8D34\u5E76\u8F6C\u5230");
- newItem.setAttribute("oncommand", "this.pasteAndGo();");
- newItem.setAttribute("accesskey", "G");
- newItem.pasteAndGo = function() {
- var prefString = "userChromeJS.PasteAndGoInTab.loadInBackground";
- var loadInBackground = nsPreferences.getBoolPref(prefString, false);
- var tabbrowser = getBrowser();
- var paste = readFromClipboard();
- if (!paste) return;
- if (tabbrowser.mContextTab.localName == 'tabs') {
- tabbrowser.loadOneTab(paste, null, null, null, loadInBackground, true);
- } else {
- tabbrowser.mContextTab.linkedBrowser.loadURI(paste, null, null, true);
- if (!loadInBackground) tabbrowser.selectedTab = tabbrowser.mContextTab;
- }
- }
- // add menuitem to tab context menu
- var tabContext = document.getAnonymousElementByAttribute(
- gBrowser, "anonid", "tabContextMenu");
- tabContext.insertBefore(newItem, tabContext.firstChild);
- // disable menuitem if there's no text in clipboard
- tabContext.addEventListener("popupshowing", function(aEvent) {
- /*var ioService = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
- try {
- var pasteURL = ioService.newURI(readFromClipboard(), null, null);
- } catch(ex) {
- }*/
- var pasteURL = readFromClipboard();
- var menuItem = document.getElementById("paste-and-go-in-tab");
- if (pasteURL) menuItem.tooltipText = readFromClipboard();
- //menuItem.setAttribute("disabled", !pasteURL ? true : false);
- menuItem.setAttribute("disabled", !pasteURL ? true : (/^file:\/{3}|^data:.+|^(?!java script:)\S*?(([\w-]\.)+\w{2,7}|localhost([:\/]|$))\S*$/.test(pasteURL) ? false : true));
- }, false);
- var copyTabUrlTMP = document.getElementById("tm-copyTabUrl");
- if (copyTabUrlTMP)
- tabContext.insertBefore(copyTabUrlTMP, newItem.nextSibling);
- })();
复制代码 [ 本帖最后由 Cye3s 于 2008-9-4 08:55 编辑 ] |
|