亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nscontextmenu.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 3 頁
字號:
          reference = focusedWindow.getSelection();        else if (context == "mathml")          reference = this.target;        else          throw "not reached";        var docUrl = null; // unused (and play nice for fragments generated via XSLT too)        window.openDialog("chrome://navigator/content/viewPartialSource.xul",                          "_blank", "scrollbars,resizable,chrome,dialog=no",                          docUrl, docCharset, reference, context);    },    // Open new "view source" window with the frame's URL.    viewFrameSource : function () {        BrowserViewSourceOfDocument(this.target.ownerDocument);    },    viewInfo : function () {        BrowserPageInfo();    },    viewFrameInfo : function () {        BrowserPageInfo(this.target.ownerDocument);    },    toggleImageSize : function () {        _content.document.toggleImageSize();    },    // Change current window to the URL of the image.    viewImage : function () {        // we don't really want to open the url in a top level window because we don't have a         // browser window...for now do nothing    },    // Change current window to the URL of the background image.    viewBGImage : function () {        openTopWin( this.bgImageURL );    },    setWallpaper: function() {      var winhooks = Components.classes[ "@mozilla.org/winhooks;1" ].                       getService(Components.interfaces.nsIWindowsHooks);            winhooks.setImageAsWallpaper(this.target, false);    },        // Save URL of clicked-on frame.    saveFrame : function () {        saveDocument( this.target.ownerDocument );    },    // Save URL of clicked-on link.    saveLink : function () {        saveURL( this.linkURL(), this.linkText(), null, true );    },    // Save URL of clicked-on image.    saveImage : function () {        saveURL( this.imageURL, null, "SaveImageTitle", false );    },    // Generate email address and put it on clipboard.    copyEmail : function () {        // Copy the comma-separated list of email addresses only.        // There are other ways of embedding email addresses in a mailto:        // link, but such complex parsing is beyond us.                const kMailToLength = 7; // length of "mailto:"        var url = this.linkURL();        var qmark = url.indexOf( "?" );        var addresses;                if ( qmark > kMailToLength ) {            addresses = url.substring( kMailToLength, qmark );        } else {            addresses = url.substr( kMailToLength );        }        // Let's try to unescape it using a character set        try {          var ownerDocument = new XPCNativeWrapper(this.target, "ownerDocument").ownerDocument;          var characterSet = new XPCNativeWrapper(ownerDocument, "characterSet").characterSet;          const textToSubURI = Components.classes["@mozilla.org/intl/texttosuburi;1"]                                         .getService(Components.interfaces.nsITextToSubURI);          addresses = textToSubURI.unEscapeURIForUI(characterSet, addresses);        }        catch(ex) {          // Do nothing.        }        var clipboard = this.getService( "@mozilla.org/widget/clipboardhelper;1",                                         Components.interfaces.nsIClipboardHelper );        clipboard.copyString(addresses);    },        ///////////////    // Utilities //    ///////////////    // Create instance of component given contractId and iid (as string).    createInstance : function ( contractId, iidName ) {        var iid = Components.interfaces[ iidName ];        return Components.classes[ contractId ].createInstance( iid );    },    // Get service given contractId and iid (as string).    getService : function ( contractId, iidName ) {        var iid = Components.interfaces[ iidName ];        return Components.classes[ contractId ].getService( iid );    },    // Show/hide one item (specified via name or the item element itself).    showItem : function ( itemOrId, show ) {        var item = itemOrId.constructor == String ? document.getElementById(itemOrId) : itemOrId;        if (item)           item.hidden = !show;    },    // Set given attribute of specified context-menu item.  If the    // value is null, then it removes the attribute (which works    // nicely for the disabled attribute).    setItemAttr : function ( id, attr, val ) {        var elem = document.getElementById( id );        if ( elem ) {            if ( val == null ) {                // null indicates attr should be removed.                elem.removeAttribute( attr );            } else {                // Set attr=val.                elem.setAttribute( attr, val );            }        }    },    // Set context menu attribute according to like attribute of another node    // (such as a broadcaster).    setItemAttrFromNode : function ( item_id, attr, other_id ) {        var elem = document.getElementById( other_id );        if ( elem && elem.getAttribute( attr ) == "true" ) {            this.setItemAttr( item_id, attr, "true" );        } else {            this.setItemAttr( item_id, attr, null );        }    },    // Temporary workaround for DOM api not yet implemented by XUL nodes.    cloneNode : function ( item ) {        // Create another element like the one we're cloning.        var node = document.createElement( item.tagName );        // Copy attributes from argument item to the new one.        var attrs = item.attributes;        for ( var i = 0; i < attrs.length; i++ ) {            var attr = attrs.item( i );            node.setAttribute( attr.nodeName, attr.nodeValue );        }        // Voila!        return node;    },    // Generate fully-qualified URL for clicked-on link.    linkURL : function () {        if (this.link.href) {          return this.link.href;        }        var href = this.link.getAttributeNS("http://www.w3.org/1999/xlink","href");        if (!href || !href.match(/\S/)) {          throw "Empty href"; // Without this we try to save as the current doc, for example, HTML case also throws if empty        }        href = this.makeURLAbsolute(this.link.baseURI,href);        return href;    },    // Get text of link.    linkText : function () {        var text = gatherTextUnder( this.link );        if (!text || !text.match(/\S/)) {          text = this.link.getAttribute("title");          if (!text || !text.match(/\S/)) {            text = this.link.getAttribute("alt");            if (!text || !text.match(/\S/)) {              if (this.link.href) {                                text = this.link.href;              } else {                text = getAttributeNS("http://www.w3.org/1999/xlink", "href");                if (text && text.match(/\S/)) {                  text = this.makeURLAbsolute(this.link.baseURI, text);                }              }            }          }        }        return text;    },    //Get selected object and convert it to a string to get    //selected text.   Only use the first 15 chars.    isTextSelection : function() {        var result = false;        var selection = this.searchSelected();        var bundle = srGetStrBundle("chrome://communicator/locale/contentAreaCommands.properties");        var searchSelectText;        if (selection != "") {            searchSelectText = selection.toString();            if (searchSelectText.length > 15)                searchSelectText = searchSelectText.substr(0,15) + "...";            result = true;          // format "Search for <selection>" string to show in menu          searchSelectText = bundle.formatStringFromName("searchText",                                                         [searchSelectText], 1);          this.setItemAttr("context-searchselect", "label", searchSelectText);        }         return result;    },        searchSelected : function() {        var focusedWindow = document.commandDispatcher.focusedWindow;        var searchStr = focusedWindow.getSelection();;        searchStr = searchStr.toString();        searchStr = searchStr.replace( /^\s+/, "" );        searchStr = searchStr.replace(/(\n|\r|\t)+/g, " ");        searchStr = searchStr.replace(/\s+$/,"");        return searchStr;    },        // Convert relative URL to absolute, using document's <base>.    makeURLAbsolute : function ( base, url ) {        // Construct nsIURL.        var ioService = Components.classes["@mozilla.org/network/io-service;1"]                      .getService(Components.interfaces.nsIIOService);        var baseURI  = ioService.newURI(base, null, null);                return ioService.newURI(baseURI.resolve(url), null, null).spec;    },    toString : function () {        return "contextMenu.target     = " + this.target + "\n" +               "contextMenu.onImage    = " + this.onImage + "\n" +               "contextMenu.onLink     = " + this.onLink + "\n" +               "contextMenu.link       = " + this.link + "\n" +               "contextMenu.inFrame    = " + this.inFrame + "\n" +               "contextMenu.hasBGImage = " + this.hasBGImage + "\n";    },    isTargetATextBox : function ( node )    {      if (node instanceof HTMLInputElement)        return (node.type == "text" || node.type == "password")      return (node instanceof HTMLTextAreaElement);    },    // Determines whether or not the separator with the specified ID should be     // shown or not by determining if there are any non-hidden items between it    // and the previous separator.     shouldShowSeparator : function ( aSeparatorID )    {      var separator = document.getElementById(aSeparatorID);      if (separator) {        var sibling = separator.previousSibling;        while (sibling && sibling.localName != "menuseparator") {          if (sibling.getAttribute("hidden") != "true")            return true;          sibling = sibling.previousSibling;        }      }      return false;      }};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆视频观看网址久久| 久久99国产乱子伦精品免费| 国产精品系列在线播放| 国产精品久久久一本精品| 久久综合资源网| 97精品电影院| 国产精品99久久久久久久vr| 免费的国产精品| 一区二区三区四区激情| 制服丝袜av成人在线看| 欧美人妖巨大在线| 欧美国产日韩精品免费观看| 国产精品久久网站| 国产精品动漫网站| 久久精品亚洲一区二区三区浴池 | 视频在线观看一区二区三区| 日韩精品影音先锋| 日韩精品一区二区三区在线| 日韩三级伦理片妻子的秘密按摩| 99精品视频一区二区三区| 国产精品88888| 91久久精品一区二区三| 不卡的看片网站| 豆国产96在线|亚洲| 不卡av在线网| 91色九色蝌蚪| 日韩欧美中文一区| 欧美日韩久久久久久| 国产婷婷精品av在线| 欧美精品一区二区三区蜜桃 | 日韩二区在线观看| 亚洲欧美一区二区不卡| 自拍偷自拍亚洲精品播放| 亚洲九九爱视频| 不卡一区二区在线| 国产一区二区三区在线观看免费 | 久久色在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲毛片av在线| 久久国产福利国产秒拍| 色综合天天天天做夜夜夜夜做| 日韩欧美中文字幕精品| 欧美变态口味重另类| 日韩一级免费观看| 亚洲欧洲无码一区二区三区| 亚洲国产成人高清精品| 欧美午夜在线一二页| 亚洲三级视频在线观看| 国产自产高清不卡| 日韩色在线观看| 亚洲成人av一区二区三区| 精品国产乱码久久久久久闺蜜| 久久久久9999亚洲精品| 成人午夜又粗又硬又大| 日韩一区二区在线免费观看| 免费成人av资源网| 久久久久久久性| 老司机精品视频在线| 国产精品九色蝌蚪自拍| 麻豆国产精品一区二区三区| 色哟哟亚洲精品| 国产精品国产成人国产三级| 在线区一区二视频| 亚洲国产成人91porn| 欧美日韩国产首页| 极品少妇一区二区| av在线综合网| 亚洲一区二区三区视频在线 | 精品久久久久久久一区二区蜜臀| 国产精品欧美极品| 国产激情视频一区二区在线观看| 欧美日产国产精品| 国产一区二区网址| 国产欧美日韩麻豆91| 成人免费视频视频在线观看免费| 精品电影一区二区三区| 国产成都精品91一区二区三| 久久久久久**毛片大全| 99精品久久免费看蜜臀剧情介绍| 首页国产丝袜综合| 91精品国产乱| 国产成人综合在线| 成人免费小视频| 91精品国产色综合久久不卡电影| 午夜久久久影院| 国产精品福利一区| 日韩欧美国产精品| 精品卡一卡二卡三卡四在线| 日韩免费电影网站| 日韩精品专区在线影院观看| 成人激情免费视频| 亚洲综合小说图片| 亚洲国产精品影院| 久久一二三国产| 中文在线一区二区| 久久综合九色综合久久久精品综合| 久久99精品国产麻豆不卡| 91在线观看高清| 一区二区三区资源| 欧美激情一区二区三区蜜桃视频 | 中文字幕亚洲区| 4hu四虎永久在线影院成人| 国产一区二区视频在线播放| 蜜臀91精品一区二区三区| 国产日韩欧美制服另类| 日韩欧美国产综合| 久久久.com| 精品日韩99亚洲| 日韩欧美的一区| 成人夜色视频网站在线观看| 视频一区中文字幕国产| 亚洲小说欧美激情另类| 日本一区二区三区免费乱视频 | 91丨porny丨国产入口| 国产乱一区二区| 狠狠色狠狠色合久久伊人| 偷窥少妇高潮呻吟av久久免费| 樱桃视频在线观看一区| 日韩国产精品久久| 国产精品一区在线| 捆绑紧缚一区二区三区视频| 亚洲成a人片在线不卡一二三区| 亚洲图片欧美视频| 国产一区二区精品在线观看| 欧美一区二区三区思思人| 欧美老人xxxx18| 国产日韩在线不卡| 午夜伊人狠狠久久| 99久久精品国产一区二区三区| 欧洲国内综合视频| 在线亚洲精品福利网址导航| 日本道色综合久久| 欧美日本一道本| 91精品国产综合久久香蕉麻豆| 欧美私人免费视频| 亚洲欧美自拍偷拍| 国产一区二区三区日韩| 不卡一区在线观看| 91麻豆成人久久精品二区三区| 久久网站最新地址| 亚洲综合色丁香婷婷六月图片| 亚洲天堂精品在线观看| 亚洲国产成人tv| 免费在线看成人av| 韩国毛片一区二区三区| 欧美精品高清视频| 亚洲午夜精品网| 在线观看成人小视频| 精品少妇一区二区三区免费观看 | 麻豆91精品视频| 99视频一区二区三区| 欧美一区二区三区思思人 | 久久成人免费电影| 亚洲综合一二三区| 欧美日韩高清一区二区| 日韩一区欧美一区| 欧美日韩精品一区二区三区四区 | 99精品偷自拍| 91精品综合久久久久久| 亚洲国产中文字幕在线视频综合| 国产一区二区不卡在线| 日韩欧美aaaaaa| 成人免费福利片| 精品日韩一区二区| 成人av免费网站| 一区二区在线观看不卡| 色综合天天性综合| 午夜欧美一区二区三区在线播放| 日韩三级中文字幕| 日韩在线a电影| 亚洲色图.com| 欧美一三区三区四区免费在线看 | 欧美一区二区三区啪啪| 国产麻豆视频一区二区| 中文字幕一区日韩精品欧美| 色婷婷综合中文久久一本| 亚洲国产精品久久不卡毛片| 青青草原综合久久大伊人精品| 久久综合狠狠综合久久激情| 91日韩精品一区| 麻豆精品在线视频| 亚洲午夜免费视频| 久久先锋影音av鲁色资源网| 免费高清不卡av| 一级女性全黄久久生活片免费| 日韩欧美一级精品久久| 91精品免费在线| av综合在线播放| 国内成人自拍视频| 日精品一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一区二区三区在线观看| 欧美日韩国产综合久久| 国产精品18久久久久| 国产一区二区三区蝌蚪| 蜜臀精品久久久久久蜜臀| 一区二区高清在线| 亚洲激情六月丁香| 日韩高清在线一区| 亚洲福利视频导航|