?? utilityoverlay.js
字號:
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- *//* ***** 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 mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Alec Flett <alecf@netscape.com> * * Alternatively, the contents of this file may be used under the terms of * either of 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 ***** *//** * Communicator Shared Utility Library * for shared application glue for the Communicator suite of applications **//* Note: All Editor/Composer-related methods have been moved to editorApplicationOverlay.js, so app windows that require those must include editorNavigatorOverlay.xul*/var gShowBiDi = false;function GetStringPref(name){ try { return pref.getComplexValue(name, Components.interfaces.nsISupportsString).data; } catch (e) {} return "";}var goPrefWindow = 0;function getBrowserURL() { try { var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); var url = prefs.getCharPref("browser.chromeURL"); if (url) return url; } catch(e) { } return "chrome://navigator/content/navigator.xul";}// update menu items that rely on focusfunction goUpdateGlobalEditMenuItems(){ goUpdateCommand('cmd_undo'); goUpdateCommand('cmd_redo'); goUpdateCommand('cmd_cut'); goUpdateCommand('cmd_copy'); goUpdateCommand('cmd_paste'); goUpdateCommand('cmd_selectAll'); goUpdateCommand('cmd_delete'); if (gShowBiDi) goUpdateCommand('cmd_switchTextDirection');}// update menu items that rely on the current selectionfunction goUpdateSelectEditMenuItems(){ goUpdateCommand('cmd_cut'); goUpdateCommand('cmd_copy'); goUpdateCommand('cmd_delete'); goUpdateCommand('cmd_selectAll');}// update menu items that relate to undo/redofunction goUpdateUndoEditMenuItems(){ goUpdateCommand('cmd_undo'); goUpdateCommand('cmd_redo');}// update menu items that depend on clipboard contentsfunction goUpdatePasteMenuItems(){ goUpdateCommand('cmd_paste');}// update Find As You Type menu items, they rely on focusfunction goUpdateFindTypeMenuItems(){ goUpdateCommand('cmd_findTypeText'); goUpdateCommand('cmd_findTypeLinks');}// Gather all descendent text under given document node.function gatherTextUnder ( root ) { var text = ""; var node = root.firstChild; var depth = 1; while ( node && depth > 0 ) { // See if this node is text. if ( node.nodeType == Node.TEXT_NODE ) { // Add this text to our collection. text += " " + node.data; } else if ( node instanceof HTMLImageElement ) { // If it has an alt= attribute, use that. var altText = node.getAttribute( "alt" ); if ( altText && altText != "" ) { text = altText; break; } } // Find next node to test. // First, see if this node has children. if ( node.hasChildNodes() ) { // Go to first child. node = node.firstChild; depth++; } else { // No children, try next sibling. if ( node.nextSibling ) { node = node.nextSibling; } else { // Last resort is our next oldest uncle/aunt. node = node.parentNode.nextSibling; depth--; } } } // Strip leading whitespace. text = text.replace( /^\s+/, "" ); // Strip trailing whitespace. text = text.replace( /\s+$/, "" ); // Compress remaining whitespace. text = text.replace( /\s+/g, " " ); return text;}function GenerateValidFilename(filename, extension){ if (filename) // we have a title; let's see if it's usable { // clean up the filename to make it usable and // then trim whitespace from beginning and end filename = validateFileName(filename).replace(/^\s+|\s+$/g, ""); if (filename.length > 0) return filename + extension; } return null;}function validateFileName(aFileName){ var re = /[\/]+/g; if (navigator.appVersion.indexOf("Windows") != -1) { re = /[\\\/\|]+/g; aFileName = aFileName.replace(/[\"]+/g, "'"); aFileName = aFileName.replace(/[\*\:\?]+/g, " "); aFileName = aFileName.replace(/[\<]+/g, "("); aFileName = aFileName.replace(/[\>]+/g, ")"); } else if (navigator.appVersion.indexOf("Macintosh") != -1) re = /[\:\/]+/g; return aFileName.replace(re, "_");}function goToggleToolbar( id, elementID ){ var toolbar = document.getElementById( id ); var element = document.getElementById( elementID ); if ( toolbar ) { var isHidden = toolbar.getAttribute("hidden") == "true"; toolbar.setAttribute("hidden", !isHidden); if ( element ) element.setAttribute("checked", isHidden) document.persist(id, 'hidden'); document.persist(elementID, 'checked'); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -