ScriptUI repeating section does not work

I'm pretty well versed in Javascript and ExtendScript now, including ScriptUI. However, there is something that escapes me, and it's when there is a repeating section in a ScriptUI dialog box and how to manage dynamic controls. Stand-alone example which should work very well in the ExtendScript Toolkit for InDesign CC 2015:

/**
 * Label is an object that represents a single label for a product.
 * 
 */
function Label(lSize, lQuantity, lInstructions, lContentType, lContents) {
    this.lSize = lSize; // String: The size of the label ("Brother 3x1", "Zebra 3x1", or "Zebra 6x4").
    this.lQuantity = lQuantity; // Number: Actual quantity of this label.
    this.lInstructions = lInstructions; // String: The instructions for this label.
    this.lContentType = lContentType; // String: "Text" = text-only label, "File" = file-based label (using pre-made artwork).
    this.lContents = lContents; // String or File: Depending on previous property, can be a String for a text-only label,
        // or a File object for a file-based label.
}






// Label groups, as an object.
function labelGroup (labelPanel, quantityInstGroup, quantityInstStatics, quantityInstFields, quantity,
        instructions, labelSizeGroup,
        rbBrother3x1, rbZebra3x1, rbZebra6x4,
        labelTypeGroup, labelTypeRadios, labelTypeFields,
        typeFileGroup, rbTypeText, rbTypeFile,
        textfield, filenameField, browsebutton, fileselected) {
    this.labelPanel = labelPanel;
    this.quantityInstGroup = quantityInstGroup;
    this.quantityInstStatics = quantityInstStatics;
    this.quantityInstFields = quantityInstFields;
    this.quantity = quantity;
    this.instructions = instructions;
    this.labelSizeGroup = labelSizeGroup;
    this.rbBrother3x1 = rbBrother3x1;
    this.rbZebra3x1 = rbZebra3x1;
    this.rbZebra6x4 = rbZebra6x4;
    this.labelTypeGroup = labelTypeGroup;
    this.labelTypeRadios = labelTypeRadios;
    this.labelTypeFields = labelTypeFields;
    this.typeFileGroup = typeFileGroup;
    this.rbTypeText = rbTypeText;
    this.rbTypeFile = rbTypeFile;
    this.textfield = textfield;
    this.filenameField = filenameField;
    this.browsebutton = browsebutton;
    this.fileselected = fileselected;
}




// Label dialog.
function getLabelInfo (labelArray, lastButton) {
    var totalNumLabels = 3;
    var wLabelTitle = "Label";
    wLabelTitle += totalNumLabels > 1 ? "s " : " ";
    wLabelTitle += "for item: " + "<Test Name>" + ".";
    var lastButtonText = lastButton ? "Begin Proofing" : "Next Product";




    var wLabel = new Window("dialog", wLabelTitle);
        var productNameText = wLabel.add("statictext", undefined, "<Test Name>");
            // productNameText.graphics.font = ScriptUI.newFont("Myriad Pro", "Bold", 20); // Font handling no longer works in CC+.


        var labelGroups = [];
        for (var index = 0; index < totalNumLabels; index++) {
            // For each label for this item, create a labelGroup object and add it to the array.
            var thisGroup = new labelGroup();
            thisGroup.labelPanel = wLabel.add("panel", /*[0, 0, 300, 75]*/ undefined, "Label " + (index + 1));
            thisGroup.labelPanel.orientation = "row";
                thisGroup.quantityInstGroup = thisGroup.labelPanel.add("group");
                thisGroup.quantityInstGroup.alignChildren = "top";
                    thisGroup.quantityInstStatics = thisGroup.quantityInstGroup.add("group");
                    thisGroup.quantityInstStatics.orientation = "column";
                    thisGroup.quantityInstStatics.alignChildren = "right";
                    // thisGroup.margins = [0, 3, 0, 0]; // [left, top, right, bottom].
                    thisGroup.quantityInstStatics.margins.top = 3;
                    thisGroup.quantityInstStatics.spacing = 15;
                    thisGroup.quantityInstStatics.add("statictext", undefined, "Quantity: ");
                    thisGroup.quantityInstStatics.add("statictext", undefined, "Instructions: ");
                thisGroup.quantityInstFields = thisGroup.quantityInstGroup.add("group");
                thisGroup.quantityInstFields.orientation = "column";
                thisGroup.quantityInstFields.alignChildren = "left";
                    thisGroup.quantity = thisGroup.quantityInstFields.add("edittext");
                    thisGroup.quantity.characters = 6;
                    thisGroup.instructions = thisGroup.quantityInstFields.add("edittext", [0, 0, 200, 55], "",
                        {multiline: true, scrolling: true, wantReturn: true});
            thisGroup.labelPanel.add("panel", [0, 0, 2, 100]); // Vertical divider line.
            thisGroup.labelSizeGroup = thisGroup.labelPanel.add("group");
            thisGroup.labelSizeGroup.orientation = "column";
            thisGroup.labelSizeGroup.alignChildren = "left";
                thisGroup.rbBrother3x1 = thisGroup.labelSizeGroup.add("radiobutton", undefined, "Brother 3x1");
                thisGroup.rbZebra3x1 = thisGroup.labelSizeGroup.add("radiobutton", undefined, "Zebra 3x1");
                thisGroup.rbZebra6x4 = thisGroup.labelSizeGroup.add("radiobutton", undefined, "Zebra 6x4");
                thisGroup.rbBrother3x1.value = true;
            thisGroup.labelPanel.add("panel", [0, 0, 2, 100]); // Vertical divider line.
            thisGroup.labelTypeGroup = thisGroup.labelPanel.add("group");
            thisGroup.labelTypeGroup.alignChildren = "top";
                thisGroup.labelTypeRadios = thisGroup.labelTypeGroup.add("group");
                thisGroup.labelTypeRadios.orientation = "column";
                thisGroup.labelTypeRadios.alignChildren = "left";
                thisGroup.labelTypeRadios.margins.top = 6;
                thisGroup.labelTypeRadios.spacing = 13;
                    thisGroup.rbTypeFile = thisGroup.labelTypeRadios.add("radiobutton", undefined, "File");
                    thisGroup.rbTypeText = thisGroup.labelTypeRadios.add("radiobutton", undefined, "Text");
                    thisGroup.rbTypeText.value = true;
                thisGroup.labelTypeFields = thisGroup.labelTypeGroup.add("group");
                thisGroup.labelTypeFields.orientation = "column";
                thisGroup.labelTypeFields.alignChildren = "left";
                    thisGroup.typeFileGroup = thisGroup.labelTypeFields.add("group");
                        thisGroup.filenameField = thisGroup.typeFileGroup.add("edittext", undefined, "---", {readonly: true});
                        thisGroup.filenameField.characters = 20;
                        thisGroup.browsebutton = thisGroup.typeFileGroup.add("button", undefined, "Browse");
                        thisGroup.browsebutton.onClick = function () {
                            thisGroup.fileselected = File.openDialog();
                            thisGroup.filenameField.text = thisGroup.fileselected.name;
                        };
                    thisGroup.textfield = thisGroup.labelTypeFields.add("edittext", [0, 0, 200, 55], "",
                            {multiline: true, scrolling: true, wantReturn: true});


            labelGroups.push(thisGroup);
        }


        var buttonGroup = wLabel.add("group");
            buttonGroup.alignment = "right";
            var cancelButton = buttonGroup.add("button", undefined, "Cancel");
            var okButton = buttonGroup.add("button", undefined, lastButtonText);




    function getLabelSize (rButtonGroup) {
        for (k = 0; k < rButtonGroup.children.length; k++) {
            if (rButtonGroup.children[k].value === true) {
                return rButtonGroup.children[k].text;
            }
        }
    }


    function getContents (currentGroup) {
        if (currentGroup.rbTypeText.value) {
            return currentGroup.textfield.text;
        }
        return currentGroup.fileselected;
    }




    if (wLabel.show() == 1) {
        // Assign data gathered from fields to product's object.
        var thisLabel;
        for (j = 0; j < labelGroups.length; j++) {
            thisLabel = new Label(
                getLabelSize(labelGroups[j].labelSizeGroup),
                parseInt(labelGroups[j].quantity.text.replaceAll(/\,/g, ''), 10),
                labelGroups[j].instructions.text,
                labelGroups[j].textradiobutton.value ? "Text" : "File",
                getContents(labelGroups[j])
                );
            labelArray.push(thisLabel);
        }
    } else {
        $.writeln("[getLabelInfo] Canceling the Label window.");
        return 7;
    }


    return 0;
}






var returnedValue = 0;
var labelArray = [];
returnedValue = getLabelInfo(labelArray, true);

This one has the repeating section appear 3 times, but in my main program, it can appear once or even 10 times. I do not know beforehand, but I need information to be stored with each section. The problem lies in the selection of a file for an article using the button "Browse". I would like to file name in edittext field in the same section next to the button, but which does not occur. What can I make sure that * fact * happen?

I had the same issue... and all by responding to this post, I thought of an idea and tested... My idea has worked so I'll share =)

Set the variable edittext field and push the name of the variable in a table. You may need to do the same thing with the buttons and navigation of each button array element value in the corresponding element of the array text edit... I just did a simple test, as evidenced by this script:

var alledits = [];

with (a new window ("dialog", "Test Editboxes Multiple")) {}

for (c = 0; c<>

var = Edit Add ("' edittext ', undefined,"change the text box"+ String (c + 1))

alledits.push (Edit);

} add ('button', undefined, "OK")

Add ('button', undefined, "Cancel")

{if (Show ()! = 1)}

Exit()

} else {}

Alert(alledits[0].) (Text)

}

}

Tags: InDesign

Similar Questions

  • Task Scheduler: repeat / duration does not work

    Hello

    On Windows Vista Business SP1.

    Create a task in Task Scheduler to run every day, repeat every hour, for a period of 12 hours. It runs * every * hours (i.e. throughout the entire day).

    Google search (or I'd be Binging?) the issue seems, several people have reported a similar thing, but I can't find a solution or a fix.

    Does anyone know if there is a fix or if there is something in SP2 on this subject.

    I had heard talk about Vista was a bunch of you-know-what, but I can't believe that something as simple as this does not work.

    Does anyone have / heard of a fix or a workaround (which is not "change the task that you run to check the time and leave... If I wanted to write my own Planner...!)

    Thank you.

    Hi MainyMike,

    Your question of Windows vista is more complex than what is generally answered in the Microsoft Answers forums. It is better suited for the IT Pro TechNet public. Please ask your question in the TechNet Windows vista forum.

    http://social.technet.Microsoft.com/forums/en-us/itprovistaapps/threads

    I hope this helps!

    Halima S - Microsoft technical support.

    Visit our Microsoft answers feedback Forum and let us know what you think.

  • The spectacle of widows and tabs from last time in the options section does not work. It does not save open tabs

    13 Firefox does not save the tabs open, as it is set up in the window for options.

    you might want to try to go to firefox > help > troubleshooting information > profile folder - display the folder and deleting all the files in this folder starting with sessionstore. Then, close the browser and after the next startup has chosen 'show widows and tabs from last time' and see if it works then...

  • my photo section does not work all photos have a top cover

    After tech own finished microsoft out of unnecessary files, I can't get it to work rightanything I in charge of the section of photo file has a cover on them and I have to use a viewer to see I think that the tech, removed a part of the HELP programme!

    Here's a possibility... go to... Start ORB / Control Panel.
    Folder options / tab / files and folders / uncheck
    "Always show icons, never thumbnails" / apply / OK.

  • HI - bought a kit of the student.    And for a while creative cloud consulted well.   But now - my access does not work, and he goes to the members section (which I already have).  Also - although I'm going to download bridge and illustrator, I could

    HI - bought a kit of the student.    And for a while creative cloud consulted well.   But now - my access does not work, and he goes to the members section (which I already have).  Also - although I'm going to download bridge and illustrator, I could never get to download Photoshop.

    Your subscription to cloud shows correctly on your account page?

    If you have more than one email, you will be sure that you use the right Adobe ID?

    https://www.adobe.com/account.html for subscriptions on your page from Adobe

    .

    If Yes

    Some general information for a subscription of cloud

    Cloud programs don't use serial... numbers you, connect you to your cloud account paying to download & install & activate... you may need to sign out of the cloud and restart your computer and log into the cloud for things to work

    Sign out of your account of cloud... Restart your computer... Connect to your paid account of cloud

    -Connect using http://helpx.adobe.com/x-productkb/policy-pricing/account-password-sign-faq.html

    -http://helpx.adobe.com/creative-cloud/kb/sign-in-out-creative-cloud-desktop-app.html

    -http://helpx.adobe.com/x-productkb/policy-pricing/activation-network-issues.html

    -http://helpx.adobe.com/creative-suite/kb/trial--1-launch.html

    -ID help https://helpx.adobe.com/contact.html?step=ZNA_id-signing_stillNeedHelp

    -http://helpx.adobe.com/creative-cloud/kb/license-this-software.html

    .

    If no

    This is an open forum, Adobe support... you need Adobe personnel to help

    Adobe contact information - http://helpx.adobe.com/contact.html

    Chat/phone: Mon - Fri 05:00-19:00 (US Pacific Time)<=== note="" days="" and="">

    -Select your product and what you need help with

    -Click on the blue box "still need help? Contact us. "

  • Windows 7 is installed repeatedly the generic driver does not work on a Realtek hd audio HD official that works.

    I have a Realtek sound card on my ASUS motherboard. It requires a driver to work properly.

    When I install this driver under Windows 7 32 - bit (fully updated - Jul 08,2012), the sound begins to work, until I stopped. but, when I turn the computer back on, Windows has uninstalled this driver, and replaced it with a generic Microsoft Audio driver, which does not work.
    How can I solve this problem?

    User Configuration\Administrative Templates\System\Driver Installation\Code signature of device drivers

    http://www.itechs-systems.com/pages/tipstricks/Disable_Driver_Signing_in_Windows_7.aspx

    You can read here:

    (Windows Vista and later versions) driver signing policy

    Code signing is tangled with DRM, and some content may not play with unsigned drivers.   Your motherboard supplier should have signed drivers for its products, if they are not then I suspect, as another poster has said, that the mobo is not supported for Windows 7.

    John

  • CS4 MENU HORIZONTAL SPRY DOES NOT WORK IN IE 8

    I had problems with the drop-down list of CS4 so I decided to create a clean HTML page and start from scratch. I created a new HTML page with nothing else than a horizontal menu spry, but it does not work in IE 8. Drop-down menus do not show. Nothing has been changed in all included files in DW, but I copied and pasted below.

    Any help would be greatly appreciated.

    HTML:

    < ! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional / / IN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > ""
    " < html xmlns =" http://www.w3.org/1999/xhtml ">
    < head >
    < meta http-equiv = "Content-Type" content = text/html"; charset = utf-8 "/ >"
    < title > Untitled Document < /title >
    < script src = "SpryAssets/SpryMenuBar.js" type = "text/javascript" > < / script > "
    < link href = "SpryAssets/SpryMenuBarHorizontal.css" rel = "stylesheet" type = "text/css" / > "
    < / head >

    < body >
    < ul id = "MenuBar1" class = "MenuBarHorizontal" >
    < li > < a class = "MenuBarItemSubmenu" href = "#" > item 1 < /a >
    < ul >
    < li > < a href = "#" > 1.1 < /a > < /li >
    < li > < a href = "#" > 1.2 < /a > < /li >
    < li > < a href = "#" > question 1.3 < /a > < /li >
    < /ul >
    < /li >
    < li > < a href = "#" > item 2 < /a > < /li >
    < li > < a class = "MenuBarItemSubmenu" href = "#" > point 3 < /a >
    < ul >
    < li > < a class = "MenuBarItemSubmenu" href = "#" > point 3.1 < /a >
    < ul >
    < li > < a href = "#" > section 3.1.1 < /a > < /li >
    < li > < a href = "#" > 3.1.2 < /a > < /li >
    < /ul >
    < /li >
    < li > < a href = "#" > point 3.2 < /a > < /li >
    < li > < a href = "#" > point 3.3 < /a > < /li >
    < /ul >
    < /li >
    < li > < a href = "#" > point 4 < /a > < /li >
    < /ul >
    < script type = "text/javascript" >
    <!--
    var MenuBar1 = new Spry.Widget.MenuBar ("MenuBar1", {imgDown: "SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});})
    ->
    < /script >
    < / body >
    < / html >

    @charset "UTF-8";

    / * Sections - version 0.6 - Pre - Release Spry 1.6.1 * /.

    / * Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */

    /*******************************************************************************

    The AVAILABLE INFORMATION: Describes the box model, positioning, the order

    *******************************************************************************/

    / * The outermost container for the menu bar, an area of width auto without margin or padding * /.
    UL. MenuBarHorizontal
    {
    margin: 0;
    padding: 0;
    list-style-type: none;
    do-size: 100%;
    cursor: default;
    Width: auto;
    }
    / * Value of the menu bar active with this class, currently the definition of z-index to accommodate IE rendering bugs: http://therealcrisp.xs4all.nl/Meuk/IE-zindexbug.html */
    UL. MenuBarActive
    {
    z-index: 1000;
    }
    / * Menu item containers, position of children relative to this container and are a fixed width * /.
    UL. MenuBarHorizontal li
    {
    margin: 0;
    padding: 0;
    list-style-type: none;
    do-size: 100%;
    position: relative;
    text-align: left;
    cursor: pointer;
    Width: 8th;
    float: left;
    }
    / * Submenus should appear under their parent (top: 0) with a higher z-index, but they are first the left side of the screen (-1000em) * /.
    UL. MenuBarHorizontal ul
    {
    margin: 0;
    padding: 0;
    list-style-type: none;
    do-size: 100%;
    z index: 1020;
    cursor: default;
    Width: 8.2em;
    position: absolute;
    left:-1000em;
    }
    / * Submenu that shows with the designation of the class MenuBarSubmenuVisible, we put the car left so it happens on the screen below its parent menu item * /.
    UL. MenuBarHorizontal ul. MenuBarSubmenuVisible
    {
    left: auto;
    }
    / * Container of menu items are same fixed width parent * /.
    UL. MenuBarHorizontal ul li
    {
    Width: 8.2em;
    }
    / * Submenus should appear slightly overlapping to the right (95%) and upward (-5%) * /.
    UL. MenuBarHorizontal ul ul
    {
    position: absolute;
    margin:-5% 0 0 95%;
    }
    / * Submenu that shows with the designation of the class MenuBarSubmenuVisible, we have left to 0, it is on the screen * /.
    UL. MenuBarHorizontal ul. MenuBarSubmenuVisible ul. MenuBarSubmenuVisible
    {
    left: auto;
    top: 0;
    }

    /*******************************************************************************

    INFORMATION DESIGN: Describes the set of colors, borders, fonts

    *******************************************************************************/

    / * Submenu containers have borders on all sides * /.
    UL. MenuBarHorizontal ul
    {
    border: 1px solid #CCC;
    }
    / * Menu items are a light grey block with padding and no text decoration * /.
    UL. MenuBarHorizontal a
    {
    display: block;
    cursor: pointer;
    background-color: #EEE;
    Padding: 0.5em 0.75em;
    Color: #333;
    text-decoration: none;
    }
    / Components menu that have mouse over or focus have a blue background and white text * /.
    UL. MenuBarHorizontal a: hover, ul. MenuBarHorizontal a: focus
    {
    background-color: # 33;
    color: #FFF;
    }
    / * Menu items that are opened with the submenus are on MenuBarItemHover with a blue background and white text * /.
    UL. MenuBarHorizontal a.MenuBarItemHover, ul. MenuBarHorizontal a.MenuBarItemSubmenuHover, ul. MenuBarHorizontal a.MenuBarSubmenuVisible
    {
    background-color: # 33;
    color: #FFF;
    }

    /*******************************************************************************

    Submenu INDICATION: styles if there is a submenu in a given category

    *******************************************************************************/

    / * Menu items that have a submenu have the MenuBarItemSubmenu class designation and are set to use a positioned background the far left (95%) and vertically centered image (50%) * /.
    UL. MenuBarHorizontal a.MenuBarItemSubmenu
    {
    background-image: url (SpryMenuBarDown.gif);
    background-repeat: no-repeat;
    background-position: 50 95%;
    }
    / * Menu items that have a submenu have the MenuBarItemSubmenu class designation and are set to use a positioned background the far left (95%) and vertically centered image (50%) * /.
    UL. MenuBarHorizontal ul a.MenuBarItemSubmenu
    {
    background-image: url (SpryMenuBarRight.gif);
    background-repeat: no-repeat;
    background-position: 50 95%;
    }
    / * Menu items that are opened with the submenus have the designation of the MenuBarItemSubmenuHover class and are set to use a background image "hover" positioned on the far left (95%) and centered vertically (50%) * /.
    UL. MenuBarHorizontal a.MenuBarItemSubmenuHover
    {
    background-image: url (SpryMenuBarDownHover.gif);
    background-repeat: no-repeat;
    background-position: 50 95%;
    }
    / * Menu items that are opened with the submenus have the designation of the MenuBarItemSubmenuHover class and are set to use a background image "hover" positioned on the far left (95%) and centered vertically (50%) * /.
    UL. MenuBarHorizontal ul a.MenuBarItemSubmenuHover
    {
    background-image: url (SpryMenuBarRightHover.gif);
    background-repeat: no-repeat;
    background-position: 50 95%;
    }

    /*******************************************************************************

    BROWSER HACKS: hacks below should not be changed, unless you are an expert

    *******************************************************************************/

    / * HACK FOR IE: to ensure that sub menus show above form controls, underpin us each submenu with an iframe * /.
    UL. MenuBarHorizontal iframe
    {
    position: absolute;
    z index: 1010;
    Filter:alpha(opacity:0.1);
    }
    / * HACK FOR IE: to stabilize the appearance of the menu items. the slash in the float is to keep IE 5.0 analysis * /.
    @media screen, projection
    {
    UL. MenuBarHorizontal li. MenuBarItemIE
    {
    display: inline;
    f\loat: left;
    Background: #FFF;
    }
    }

    SpryMenuBar.js - version 0.12 - Pre - Release Spry 1.6.1
    //
    Copyright (c) 2006. Adobe Systems Incorporated.
    All rights reserved.
    //
    Redistribution and use in source form and binary, with or without
    modification, are permitted provided that the following conditions are met:
    //
    * The redistributions of source code must retain the above copyright notice
    This list of conditions and the following disclaimer.
    * The redistributions in binary form must reproduce the above copyright notice
    This list of conditions and the following disclaimer in the documentation
    and/or other documents provided with the distribution.
    * Neither the name of Adobe Systems Incorporated nor the names of its
    contributors may be used to endorse or promote products derived from this
    software without specific written permission.
    //
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS WHAT.
    AND ANY EXPRESS WARRANTY OR IMPLIED, INCLUDING, BUT WITHOUT LIMITATION, THE
    GUARANTEED IMPLICIT QUALITY MARKET AND ADEQUACY HAS A PARTICULAR PURPOSE
    ARE EXCLUDED. IN NO CASE WILL THE OWNER OF THE COPYRIGHT OR CONTRIBUTORS BE
    RESPONSIBLE FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL DAMAGES, COPIES, OR
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PURCHASES OF)
    SUBSTITUTE PRODUCTS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    RESULTING FROM THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGES.

    /*******************************************************************************

    SpryMenuBar.js
    This file manages the JavaScript for the Spry menu bar.  You should have no need
    to change this file.  Some highlights of the object from the menu bar, is that the timers are
    used to prevent the display until the user has flown over the parent of submenus
    menu item for some time, but also a timer for when they leave a submenu to keep
    display this submenu until that timer starts.

    *******************************************************************************/

    var Spry; If (!.) Spry) Spry = {}; If (!.) Spry.Widget) Spry.Widget = {};

    Spry.BrowserSniff = function()
    {
    var b = navigator.appName.toString ();
    var up = navigator.platform.toString ();
    au var = navigator.userAgent.toString ();

    This.Mozilla = this.ie = this.opera = this.safari = false;
    var re_opera = /Opera. ([0 - 9.] *)/i;
    var re_msie = /MSIE. ([0 - 9.] *)/i;
    var re_gecko = / gecko/i;
    var re_safari = /(applewebkit|safari)-/ ([\d\.] *) / i;
    var r = false;

    If ((r = ua.match (re_opera))) {}
    This.Opera = true;
    This.version = parseFloat (r [1]);
    } else if ((r = ua.match (re_msie))) {}
    This.IE = true;
    This.version = parseFloat (r [1]);
    } else if ((r = ua.match (re_safari))) {}
    This.Safari = true;
    This.version = parseFloat (r [2]);
    } else if (ua.match (re_gecko)) {}
    var re_gecko_version = /rv:\s*([0-9\.]_+) / i;
    r = ua.match (re_gecko_version);
    This.Mozilla = true;
    This.version = parseFloat (r [1]);
    }
    This.Windows = this.mac = this.linux = false;

    This. Platform = ua.match (/ windows/i)? "windows":
    (ua.match (/ linux/i)?) "linux":
    (ua.match (/ mac/i)?) "mac":
    UA.match (/ unix/i)? (('unix': 'unknown'));
    [this. Platform] = true;
    This.v = this.version;

    If (this.safari & & this.mac & & this.mozilla) {}
    This.Mozilla = false;
    }
    };

    Spry.is = new Spry.BrowserSniff ();

    Constructor for the Menu bar
    element must be an ID of an unordered list (< ul > tag)
    preloadImage1 and preloadImage2 are images for the rollover a State menu
    Spry.Widget.MenuBar = function (element, opts)
    {
    This.init (element, opts);
    };

    Spry.Widget.MenuBar.prototype.init = function (element, opts)
    {
    This.Element = this.getElement (element);

    represents the menu (under-) current, in that we operate
    this.currMenu = null;
    this.showDelay = 250;
    this.hideDelay = 600;
    If (typeof document.getElementById == 'undefined' |) (navigator.vendor == 'Apple Computer, Inc.' & & typeof window.) XMLHttpRequest == "undefined"). (Spry.is.ie & & typeof document.uniqueID == 'undefined'))
    {
    deposit on older browsers not taken in charge
    return;
    }

    Difficulty of flickering images CSS IE6
    If (Spry.is.ie & & Spry.is.version < 7) {}
    try {}
    document.execCommand ("BackgroundImageCache", false, true);
    } catch (err) {}
    }

    this.upKeyCode = Spry.Widget.MenuBar.KEY_UP;
    this.downKeyCode = Spry.Widget.MenuBar.KEY_DOWN;
    this.leftKeyCode = Spry.Widget.MenuBar.KEY_LEFT;
    this.rightKeyCode = Spry.Widget.MenuBar.KEY_RIGHT;
    this.escKeyCode = Spry.Widget.MenuBar.KEY_ESC;

    this.hoverClass = "MenuBarItemHover";
    this.subHoverClass = "MenuBarItemSubmenuHover";
    this.subVisibleClass = "MenuBarSubmenuVisible";
    this.hasSubClass = "MenuBarItemSubmenu;
    this.activeClass = "MenuBarActive";
    this.isieClass = "MenuBarItemIE";
    this.verticalClass = "MenuBarVertical."
    this.horizontalClass = "MenuBarHorizontal;
    this.enableKeyboardNavigation = true;

    this.hasFocus = false;
    load the overview images now
    If (OPTS)
    {
    for (var k opts)
    {
    If (typeof this [k] is "undefined")
    {
    rollover var = new Image;
    rollover. SRC = opts [k];
    }
    }
    Spry.Widget.MenuBar.setOptions (, opts);
    }

    Safari does not support the tabindex
    If (Spry.is.safari)
    this.enableKeyboardNavigation = false;

    If (this.) Element)
    {
    this.currMenu = this.element;
    var items = this.element.getElementsByTagName('li');
    for (var i = 0; i < items.length; i ++)
    {
    If (I > 0 & & this.enableKeyboardNavigation)
    .tabIndex items [i]. GetElementsByTagName ('a') [0] = '-1';

    (Items [i], element); This.Initialize
    If (Spry.is.IE)
    {
    this.addClassName (items [i], this.isieClass);
    Items [i].style.position = "static";
    }
    }
    If (this.enableKeyboardNavigation)
    {
    var self = this;
    this.addEventListener (document, 'keydown', function (e) {self.keyDown (e)}; false);
    }

    If (Spry.is.IE)
    {
    If (this.hasClassName (this.element, this.verticalClass))
    {
    This.Element.style.position = "relative";
    }
    var linkitems = this.element.getElementsByTagName ('a');
    for (var i = 0; i < linkitems.length; i ++)
    {
    . style.position linkitems [i] = 'relative ';
    }
    }
    }
    };
    Spry.Widget.MenuBar.KEY_ESC = 27;
    Spry.Widget.MenuBar.KEY_UP = 38;
    Spry.Widget.MenuBar.KEY_DOWN = 40;
    Spry.Widget.MenuBar.KEY_LEFT = 37;
    Spry.Widget.MenuBar.KEY_RIGHT = 39;

    Spry.Widget.MenuBar.prototype.getElement = function (ele)
    {
    If (ele & & typeof ele == 'string')
    return document.getElementById (ele);
    return ele;
    };

    Spry.Widget.MenuBar.prototype.hasClassName = function (ele, className)
    {
    If (! ele |! className |! ele.className | ele.className.search (new RegExp ("\\b" + className + "\\b")) == - 1).
    {
    Returns false;
    }
    Returns true;
    };

    Spry.Widget.MenuBar.prototype.addClassName = function (ele, className)
    {
    If (! ele |! className | this.hasClassName (ele, className))
    return;
    ele.className += (ele.className? "": "") + ClassName; "
    };

    Spry.Widget.MenuBar.prototype.removeClassName = function (ele, className)
    {
    If (! ele |! className |! this.hasClassName (ele, className))
    return;
    ele.className = ele.className.replace (new RegExp ("\\s*\\b" + className + "\\b", "g"), ' ');
    };

    addEventListener for the Menu bar
    join an event a tag without creating annoying HTML code
    Spry.Widget.MenuBar.prototype.addEventListener = function (element, eventType, Manager, capture)
    {
    Try
    {
    If (element.addEventListener)
    {
    element.addEventListener (eventType, Manager, capture);
    }
    Else if (element.attachEvent)
    {
    element.attachEvent ("on" + eventType, handler);
    }
    }
    catch (e) {}
    };

    menu bar createIframeLayer
    creates an IFRAME under a menu that appears above the form controls and ActiveX
    Spry.Widget.MenuBar.prototype.createIframeLayer = function (menu)
    {
    var layer = document.createElement ('iframe');
    layer.tabIndex = '-1';
    Layer.src = "' javascript: '" '; "
    layer.frameBorder = '0';
    Layer.scrolling = 'no ';
    menu.parentNode.appendChild (layer);

    Layer.style.Left = menu.offsetLeft + 'px ';
    Layer.style.Top = menu.offsetTop + 'px ';
    Layer.style.Width = menu.offsetWidth + 'px ';
    Layer.style.Height = menu.offsetHeight + 'px ';
    };

    menu bar removeIframeLayer
    Removes an IFRAME under a menu to reveal form and ActiveX controls
    Spry.Widget.MenuBar.prototype.removeIframeLayer = function (menu)
    {
    var layers = ((menu == this.element)? menu: menu.parentNode) .getElementsByTagName ('iframe');
    While (layers.length > 0)
    {
    layers [0].parentNode.removeChild (Layers [0]);
    }
    };

    menu bar clearMenus
    root is the unordered list of high level (< ul > tag)
    Spry.Widget.MenuBar.prototype.clearMenus = function (root)
    {
    var menus = root.getElementsByTagName ('ul');
    for (var i = 0; i < menus.length; i ++)
    this.hideSubmenu (menus [i]);

    this.removeClassName (this.element, this.activeClass);
    };

    menu bar bubbledTextEvent
    identify bubbled events text in Safari, so we can ignore
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
    {
    return Spry.is.safari & & (event.target == event.relatedTarget.parentNode |) (event.eventPhase == 3 & & event.target.parentNode == event.relatedTarget)) ;
    };

    menu bar showSubmenu
    set the CSS class on this menu to show
    Spry.Widget.MenuBar.prototype.showSubmenu = function (menu)
    {
    If (this.currMenu)
    {
    this.clearMenus (this.currMenu);
    this.currMenu = null;
    }

    If (menu)
    {
    this.addClassName (menu, this.subVisibleClass);
    If (typeof document.all! = "undefined" & &!) Spry.is.Opera & & navigator.vendor! = 'KDE')
    {
    If (! this.hasClassName (this.element, this.horizontalClass): menu.parentNode.parentNode! = this.element)
    {
    menu.style.Top = menu.parentNode.offsetTop + 'px ';
    }
    }
    If (Spry.is.ie & & Spry.is.version < 7)
    {
    this.createIframeLayer (menu);
    }
    }
    this.addClassName (this.element, this.activeClass);
    };

    menu bar hideSubmenu
    delete the CSS class on this menu to hide
    Spry.Widget.MenuBar.prototype.hideSubmenu = function (menu)
    {
    If (menu)
    {
    this.removeClassName (menu, this.subVisibleClass);
    If (typeof document.all! = "undefined" & &!) Spry.is.Opera & & navigator.vendor! = 'KDE')
    {
    menu.style.Top = ";
    menu.style.Left = ";
    }
    If (Spry.is.ie & & Spry.is.version < 7)
    this.removeIframeLayer (menu);
    }
    };

    initialization of the Menu bar
    create listeners for events for the widget bar of menus so that we can properly
    show and hide sub-menus
    Spry.Widget.MenuBar.prototype.initialize = function (listitem, element)
    {
    var opentime, closetime;
    link var = listitem.getElementsByTagName ('a') [0];
    submenus var = listitem.getElementsByTagName ('ul');
    var menu = (submenus.length > 0? submenus [0]: null);

    If (menu)
    this.addClassName (link, this.hasSubClass);

    If (!.) Spry.is.IE)
    {
    define a simple function which comes standard in Internet Explorer to determine
    If a node is in another node
    ListItem.Contains = function (testNode)
    {
    It's the list item
    if(testNode == null)
    Returns false;

    if(testNode == This)
    Returns true;
    on the other
    Return this.contains (testNode.parentNode);
    };
    }

    need to set this to reach lower
    var self = this;
    this.addEventListener (listitem, "mouseover", Function {self.mouseOver (listitem, e)}; false);
    this.addEventListener (listitem, 'mouseout/mouseouthandler()', Function {if (self.enableKeyboardNavigation) self.clearSelection (); self.mouseOut (listitem, e);}, false);

    If (this.enableKeyboardNavigation)
    {
    this.addEventListener (link, 'blur', function (e) {self.onBlur (listitem)}; false);
    this.addEventListener (link, 'focus', Function {self.keyFocus (listitem, e)}; false);
    }
    };
    Spry.Widget.MenuBar.prototype.keyFocus = function (listitem, e As EventArgs)
    {
    this.lastOpen = listitem.getElementsByTagName ('a') [0];
    this.addClassName (this.lastOpen, listitem.getElementsByTagName('ul').length > 0? this.subHoverClass: this.hoverClass);
    this.hasFocus = true;
    };
    Spry.Widget.MenuBar.prototype.onBlur = function (listitem)
    {
    this.clearSelection (listitem);
    };
    Spry.Widget.MenuBar.prototype.clearSelection = {function (el)}
    search any intersection with the open current item
    If (! this.lastOpen)
    return;

    If (el)
    {
    El = el.getElementsByTagName ('a') [0];

    check children
    var point = this.lastOpen;
    While (article! = this.element)
    {
    var tmp = el;
    While (tmp! = this.element)
    {
    If (tmp is point)
    return;
    try {}
    tmp = tmp.parentNode;
    } catch (err) {break ;}
    }
    Item = item.parentNode;
    }
    }
    var point = this.lastOpen;
    While (article! = this.element)
    {
    this.hideSubmenu (item.parentNode);
    link var = item.getElementsByTagName ('a') [0];
    this.removeClassName (link, this.hoverClass);
    this.removeClassName (link, this.subHoverClass);
    Item = item.parentNode;
    }
    this.lastOpen = false;
    };
    Spry.Widget.MenuBar.prototype.keyDown = function (e)
    {
    If (! this.hasFocus)
    return;

    If (! this.lastOpen)
    {
    this.hasFocus = false;
    return;
    }

    var e = e | event;
    ListItem var = this.lastOpen.parentNode;
    var this.lastOpen = link;
    submenus var = listitem.getElementsByTagName ('ul');
    var menu = (submenus.length > 0? submenus [0]: null);
    var hasSubMenu (menu) =? true: false;

    opts var = [listitem, menu, null, this.getSibling (listitem, 'previousSibling'), this.getSibling (listitem, 'nextSibling')];

    If (! opts [3])
    opts [2] = (listitem.parentNode.parentNode.nodeName.toLowerCase () == 'li')? listitem.parentNode.parentNode:null;

    var found = 0;
    switch (e.keyCode) {}
    case this.upKeyCode:
    found = this.getElementForKey (opt, 'y', 1);
    break;
    case this.downKeyCode:
    found = this.getElementForKey (opt, 'y',-1);
    break;
    case this.leftKeyCode:
    found = this.getElementForKey (opt, 'x', 1);
    break;
    case this.rightKeyCode:
    found = this.getElementForKey (opt, 'x',-1);
    break;
    case this.escKeyCode:
    case 9:
    this.clearSelection ();
    this.hasFocus = false;
    default: return;
    }
    switch (found)
    {
    case 0: return End Function
    case 1:
    subopts
    this.mouseOver (listitem, e);
    break;
    case 2:
    parent
    this.mouseOut (opts [2], e);
    break;
    case 3:
    case 4:
    left - right
    this.removeClassName (link, hasSubMenu? this.subHoverClass: this.hoverClass);
    break;
    }
    var link is opts [found] .getElementsByTagName ('a') [0];.
    If (opts [found].nodeName.toLowerCase () is "ul")
    opts [found] = opts [found] .getElementsByTagName ('li') [0];

    this.addClassName (link, opts [found].getElementsByTagName('ul').length > 0? this.subHoverClass: this.hoverClass);
    this.lastOpen = link;
    OPTS [found]. GetElementsByTagName ('a') [0]. Focus();

    stop the new management of the events by the browser
    Return Spry.Widget.MenuBar.stopPropagation (e);
    };
    Spry.Widget.MenuBar.prototype.mouseOver = function (listitem, e As EventArgs)
    {
    link var = listitem.getElementsByTagName ('a') [0];
    submenus var = listitem.getElementsByTagName ('ul');
    var menu = (submenus.length > 0? submenus [0]: null);
    var hasSubMenu (menu) =? true: false;
    If (this.enableKeyboardNavigation)
    this.clearSelection (listitem);

    If (this.bubbledTextEvent ())
    {
    ignore the propagated events text
    return;
    }

    If (listitem.closetime)
    clearTimeout() (listitem.closetime);

    if(this.currMenu == ListItem)
    {
    this.currMenu = null;
    }

    move the focus too
    If (this.hasFocus)
    Link.Focus ();

    the menu highlighted
    this.addClassName (link, hasSubMenu? this.subHoverClass: this.hoverClass);
    this.lastOpen = link;
    If (menu & &! this.hasClassName (menu, this.subHoverClass))
    {
    var self = this;
    ListItem.OpenTime = window.setTimeout (function () {self.showSubmenu (menu)}; this.showDelay);
    }
    };
    Spry.Widget.MenuBar.prototype.mouseOut = function (listitem, e As EventArgs)
    {
    link var = listitem.getElementsByTagName ('a') [0];
    submenus var = listitem.getElementsByTagName ('ul');
    var menu = (submenus.length > 0? submenus [0]: null);
    var hasSubMenu (menu) =? true: false;
    If (this.bubbledTextEvent ())
    {
    ignore the propagated events text
    return;
    }

    var related = (typeof e.relatedTarget! = "undefined"? e.relatedTarget: e.toElement);
    If (!) ListItem.Contains (related))
    {
    If (listitem.opentime)
    clearTimeout() (listitem.opentime);
    this.currMenu = listitem;

    remove menu highlighting
    this.removeClassName (link, hasSubMenu? this.subHoverClass: this.hoverClass);
    If (menu)
    {
    var self = this;
    ListItem.closetime = window.setTimeout (function () {self.hideSubmenu (menu)}; this.hideDelay);
    }
    If (this.hasFocus)
    Link.Blur ();
    }
    };
    Spry.Widget.MenuBar.prototype.getSibling = function (element, siblings)
    {
    var = element [brother] child;
    While (child & & child.nodeName.toLowerCase ()! = "li")
    child = child [brother];

    return of child;
    };
    Spry.Widget.MenuBar.prototype.getElementForKey = function (SLE, prop, dir)
    {
    var found = 0;
    var Rect = Spry.Widget.MenuBar.getPosition;
    Var ref = rect (els [found]);

    var hideSubmenu = false;
    make the visible subitem to calculate the position
    If (els [1] & &! this.hasClassName (els [1], this.)) MenuBarSubmenuVisible))
    {
    . style.visibility Els [1] = "hidden";
    this.showSubmenu(els[1]);
    hideSubmenu = true;
    }

    var isVert = this.hasClassName (this.element, this.verticalClass);
    hasParent var = els [0].parentNode.parentNode.nodeName.toLowerCase () == 'li '? true: false;

    for (var i = 1; i < els.length; i ++) {}
    When you browse the y-axis in the menus vertical, ignore the children and parents
    If (prop == 'y' & & isVert & & (i == 1 | I == 2))
    {
    continue;
    }
    When navigationg on the x axis in the horizontal menu LEVEL FIRST, ignore the children and parents
    If (prop == 'x' & &! isVert & &! hasParent & & (i == 1 | I == 2))
    {
    continue;
    }

    If (els [i])
    {
    var tmp = rect (els [i]);
    If ((dir * tmp[prop]) < (dir * ref [prop]))
    {
    REF = tmp;
    found = i;
    }
    }
    }

    In return hide the submenu
    If (els [1] & & hideSubmenu) {}
    this.hideSubmenu(els[1]);
    . style.visibility Els [1] = ";
    }

    return found;
    };
    Spry.Widget.MenuBar.camelize = function (str)
    {
    If (str.indexOf('-') ==-1) {}
    return str;
    }
    var oStringList = str.split('-');
    var isFirstEntry = true;
    var camelizedString = ";

    for (var i = 0; i < oStringList.length; i ++)
    {
    If (oStringList [i] .length > 0)
    {
    If (isFirstEntry)
    {
    camelizedString = oStringList [i];
    isFirstEntry = false;
    }
    on the other
    {
    var s = oStringList [i];
    camelizedString += s.charAt (0) .toUpperCase () + s.substring (1);
    }
    }
    }

    Return camelizedString;
    };

    Spry.Widget.MenuBar.getStyleProp = function (element, prop)
    {
    var value;
    Try
    {
    If (element.style)
    value = element.style [Spry.Widget.MenuBar.camelize (prop)];

    If (! value)
    If (document.defaultView & & document.defaultView.getComputedStyle)
    {
    CSS var = document.defaultView.getComputedStyle (item, null);
    value = css? css.getPropertyValue (prop): null;
    }
    Else if (element.currentStyle)
    {
    value = element.currentStyle [Spry.Widget.MenuBar.camelize (prop)];
    }
    }
    catch (e) {}

    return value == 'auto '? NULL: value;
    };
    Spry.Widget.MenuBar.getIntProp = function (element, prop)
    {
    var a = parseInt (Spry.Widget.MenuBar.getStyleProp (item, prop), 10);
    If (isNaN (a))
    return 0;
    return a;
    };

    Spry.Widget.MenuBar.getPosition = function (el, doc)
    {
    doc = doc. document;
    If (typeof (el) == 'string') {}
    El = doc.getElementById (el);
    }

    If (! el) {}
    Returns false;
    }

    If (el.parentNode = null |) Spry.Widget.MenuBar.getStyleProp (el, 'display') == 'none') {}
    the element must be visible to have a box
    Returns false;
    }

    var ret = {x: 0, y: 0};
    var parent = null;
    var box;

    If (el.getBoundingClientRect) {/ / IE}
    box = el.getBoundingClientRect ();
    scrollTop var = doc.documentElement.scrollTop | doc.body.scrollTop;
    scrollLeft var = doc.documentElement.scrollLeft | doc.body.scrollLeft;
    RET.x = box.left + scrollLeft;
    RET.y = box.top + scrollTop;
    } Else if (doc.getBoxObjectFor) {/ / gecko}
    box = doc.getBoxObjectFor (el);
    RET.x = box.x;
    RET.y = box.y;
    } else {/ / safari/opera}
    RET.x = el.offsetLeft;
    RET.y = el.offsetTop;
    parent = el.offsetParent;
    If (parent! = el) {}
    While (parent) {}
    RET.x += parent.offsetLeft;
    RET.y += parent.offsetTop;
    parent = parent.offsetParent;
    }
    }
    Opera & (absolute safari) represent bad body offsetTop
    If (Spry.is.opera |) Spry.is.Safari & & Spry.Widget.MenuBar.getStyleProp (el, 'position') == 'absolute')
    RET.y = doc.body.offsetTop;
    }
    If (el.parentNode)
    parent = el.parentNode;
    on the other
    parent = null;
    If {(parent.nodeName)
    var No. case = parent.nodeName.toUpperCase ();
    While (parent & & case! = "BODY" & & case! = 'HTML') {}
    No case = parent.nodeName.toUpperCase ();
    RET.x = parent.scrollLeft;
    RET.y = parent.scrollTop;
    If (parent.parentNode)
    parent = parent.parentNode;
    on the other
    parent = null;
    }
    }
    return ret;
    };

    Spry.Widget.MenuBar.stopPropagation = function (ev)
    {
    If (ev.stopPropagation)
    ev.stopPropagation ();
    on the other
    ev.cancelBubble = true;
    If (ev.preventDefault)
    ev.preventDefault ();
    on the other
    ev.returnValue = false;
    };

    Spry.Widget.MenuBar.setOptions = function (obj, optionsObj, ignoreUndefinedProps)
    {
    If (! optionsObj)
    return;
    for (var optionName in optionsObj)
    {
    If (ignoreUndefinedProps & & optionsObj [Optionname] == undefined)
    continue;
    obj [Optionname] = optionsObj [Optionname];
    }
    };

    It may be an idea to enable active scripting in your browser on

  • Bitmoji keyboard does not work after last update iOS 10

    My Bitmoji keyboard does not work after that I updated to iOS 10 update. I have no idea why, my friends Bitmoji keyboard works fine after that she has updated her phone and mine does not work so I was wondering why. It worked perfectly fine before I upgraded my phone. I was wondering what to do.

    the same problem. He repeats to me go to keyboard settings and make sure that it says allows full access to Bitmoji and it does. Should not have upgraded to iOS.

  • Bookmark this page does not work, nor is CTRL-D

    Since the recent update I have not been able to bookmark pages. It works if I put Firefox in safe mode but not in normal. It seems that this has happened last week as a new update has been applied.

    Try Firefox Safe mode to see if the problem goes away. Firefox Safe mode is a troubleshooting mode that temporarily disables hardware acceleration, restores some settings and disables add-ons (extensions and themes).

    If Firefox is open, you can restart Firefox Safe mode in the Help menu:

    • Click the menu button

      click Help

      then select restart with disabled modules.

    If Firefox does not work, you can start Firefox in Mode safe as follows:

    • On Windows: Hold down the SHIFT key when you open the desktop Firefox or shortcut in the start menu.
    • On Mac: Hold the option key during the startup of Firefox.
    • On Linux: Exit Firefox, go to your Terminal and run firefox-safe-mode
      (you may need to specify the installation path of Firefox for example/usr/lib/firefox)

    When the Firefox Safe Mode window appears, select "start mode safe."

    If the problem is not present in Firefox Safe Mode, your problem is probably caused by an extension, theme or hardware acceleration. Please follow the steps described in the section Troubleshooting extensions, themes and problems of hardware acceleration to resolve common Firefox problems to find the cause.

    To exit safe mode of Firefox, simply close Firefox and wait a few seconds before you open Firefox for normal use again.

    When find you what is causing your problems, please let us know. This might help others with the same problem.

  • I have reset firefox have now no menu bar and pressingf alt does not work

    I have reset firefox reported he turned slowly and had other problems at the start. Now, I have no menu bar and the alt button does nothing. Restored to the comp hoping that it can be useful but it did not. Any help would be appreciated.
    TIA.

    Hi, first try restarting Firefox. If this does not work Try Firefox Safe Mode to see if the problem goes away. Firefox Safe mode is a troubleshooting mode that temporarily disables hardware acceleration, restores some settings and disables add-ons (extensions and themes).

    If Firefox is open, you can restart Firefox Safe mode in the Help menu:

    • Click the menu button

      click Help

      then select restart with disabled modules.

    If Firefox does not work, you can start Firefox in Mode safe as follows:

    • On Windows: Hold down the SHIFT key when you open the desktop Firefox or shortcut in the start menu.
    • On Mac: Hold the option key during the startup of Firefox.
    • On Linux: Exit Firefox, go to your Terminal and run firefox-safe-mode
      (you may need to specify the installation path of Firefox for example/usr/lib/firefox)

    When the Firefox Safe Mode window appears, select "Start mode safe" - does NOT REFRESH!

    If the problem is not present in Firefox Safe Mode, your problem is probably caused by an extension, theme or hardware acceleration. Please follow the steps described in the section Troubleshooting extensions, themes and problems of hardware acceleration to resolve common Firefox problems to find the cause.

    To exit safe mode of Firefox, simply close Firefox and wait a few seconds before you open Firefox for normal use again.

    When find you what is causing your problems, please let us know. This might help others with the same problem.

  • Option for "warn me when sites try to charge ' does not work?

    Firefox 37.0.1 (and all of my previous installations) for MacOS X 10.7.5.

    I would have thought that such a simple case of reload javascript has been covered. For example, drudgereport.com charge always annoyingly all few minutes in its header:

    var timer = setInterval ("autoRefresh ()", 1000 * 50 * 3);
    function {self.location.reload (true) ;} autoRefresh()

    This does not qualify as a bonefide browser bug?

    The setting in "Options/Preferences > advanced > general" does not work when JavaScript is used to refresh a web page as the drudgereport website uses.

    A possible workaround is to use a bookmarklet to disable this "feature".
    You use the bookmarklet you (re) load the web page.

    javascript:clearInterval(timer);void(autoRefresh=null);
    

    The setting to "Options/Preferences > advanced > general" is designed as an accessibility feature, as you can see by the label of this section, so that people with disabilities or people who use screen readers don't get confused not and is not intended as a security protection to stop to redirect.

    See also:

  • Firefox does not work

    Download "dialog" with the "gray area" to type in something. who does not either; Click the box outside get ' error tone ", click inside the box of nothing. cannot close yet; computer restarted, tried firefox again, once more the same dialog box. uninstalled firefox then reinstalled; always the same problem; have windows 8.1. How can I go back to the previous edition of firefox? you know... the one that actually works!

    javawebweaver said

    Download "dialog" with the "gray area" to type in something. who does not either; Click the box outside get ' error tone ", click inside the box of nothing. cannot close yet; computer restarted, tried firefox again, once more the same dialog box. uninstalled firefox then reinstalled; always the same problem; have windows 8.1. How can I go back to the previous edition of firefox? you know... the one that actually works!

    Hello

    Try Firefox Safe mode to see if the problem goes away. Firefox Safe mode is a troubleshooting mode that temporarily disables hardware acceleration, restores some settings and disables add-ons (extensions and themes).

    If Firefox does not work, you can start Firefox in Mode safe as follows:

    • On Windows: Hold down the SHIFT key when you open the desktop Firefox or shortcut in the start menu.

    When the Firefox Safe Mode window appears, select "start mode safe."

    If the problem is not present in Firefox Safe Mode, your problem is probably caused by an extension, theme or hardware acceleration. Please follow the steps described in the section Troubleshooting extensions, themes and problems of hardware acceleration to resolve common Firefox problems to find the cause.

    To exit safe mode of Firefox, simply close Firefox and wait a few seconds before you open Firefox for normal use again.

    When find you what is causing your problems, please let us know. This might help others with the same problem.

  • IPhone 6s - microphone does not work on all applications except camera and calls

    Hey, I don't know exactly know what happened with my phone. Suddenly, my microphone work on LINE, Whatsapp and almost all other applications that use mic. Except, camera and when someone call me on my number.

    But it does not work on whatsapp and LINE calls. And it also does not work when I snapchat. Only works on the default camera Apps and call through my number.

    I tried:

    -restart my phone

    -hard reset and blink? Reset with the power and the "home" button.

    -read the micro support page. Still no solution.

    TL; Dr:

    my microphone does not work on every apps on my phone except calls through number and approx. of default camera it gives you just that silence when I play it on voice notes. But it works when I record yourself using videos on the default camera app.

    Hello Bllacke,

    Thank you for using communities of Apple Support.

    I see from your post, some applications have a problem to access your Microphone. I know how it is important to ensure that your applications have access to the Microphone and can use this feature. I have a few things I want to try.

    First, tap Settings on your iPhone and then scroll to the last section that lists your apps. Select the applications that use the microphone and make sure that the Microphone is activated (green).

    Then, follow the steps in the article below to close these applications:

    Force a nearby application on your iPhone, iPad or iPod touch

    Then, test the microphone in these applications again and see if it works.

    Best regards.

  • Add-on for Print Edit does not work

    I just got my iMac cleaned for adware and now my add-on for print edit does not work. There is an error 2 - XPF to the catalog. I don't know the email address of support for developers?

    Hello

    Did you mean this extension:

    The contact details are on the right side of the page, next to the section 'on this add-on.

  • Session manager does not work

    I don't know if this goes in the tabs section or the section modules, so I placed it here in tabs.

    I label mix more and that's what happened to me recently:

    I just started firefox; He asked me to restore the tabs and I said 'yes', but all tabs are empty. I thought it was a mistake, then I closed Firefox and restarted and now the sessions don't ask me if I want to restore the previous session. After playing with it, I've broken down and started a new session. Got the essential and other elements, closed firefox and he asked me if I want to save, and I said 'yes '. When I went to open firefox, nothing happened. He didn't ask me to restore the session or anything like that. I checked the session manager and sessions before that I just do (sessions that were there when the bug happened) were there and the session manager still does not work.

    Thanks for your help.

    You can use updates made to TabMix Plus in the tab of the Add-ons Manager, using the context menu.

    Also, TabMix Plus has its ' own support here forum.
    http://tmp.garyr.NET/forum/

Maybe you are looking for