Product Restrictions

Restrictions Associated with Environment

Caret position when focus moves into MaskEdit

The position of a caret will move to the end of text when focus moves into the MaskEdit component. This problem occurs in the iOS environment when the type property of the MaskEdit is set to "string".

RP

Written in

Description

69265

2016-09-13

In the iOS environment, a device will call a command to display a keypad when focus moves into the editable field of a component. At this point, iOS will change the value of the type property of the DOM Input Text object and then renew the text. This process causes the caret to move to the end of the text. Although we can change the caret’s position forcibly, we do not do so for fear of deterioration in performance.

Restriction related to file download when applying Enhanced Protected Mode.

If you check the Enhanced Protected Mode option in IE10 or later, the download path will be virtualized so that files will be downloaded only to a specific folder while other Windows folders are protected. In this case, therefore, users are prevented from designating their own download paths.

RP

Written in

Description

71778

2017-02-13

The Enhanced Protected Mode option is selected by users in IE10 or later. Therefore, you can advise users to change the option if necessary.

appendItem method of FileUpload fails to be executed

If you call the appendItem method of a FileUpload component repeatedly in the Safari browser, the method will not work from the second instance of calling.

RP

Written in

Description

72002

2017-02-28

This is a bug caused by the Safari browser running in the Windows environment.

Restriction on search for text value in editable field

In Internet Explorer, you cannot search for the text value entered in the editable field of a component by using the search feature of the browser.

RP

Written in

Description

72123

2017-03-09

This is a restriction created by Internet Explorer.

Windows increasingly takes up memory when WebBrowser is created and deleted repeatedly

Windows will increasingly take up memory if you repeat the creation and deletion of a WebBrowser component when running the NRE. Consequently, Windows will slow down.

One example is a case where you link a Div component to a Form that contains a WebBrowser by specifying the Form as the value of the Div's url property. Whenever you change the value of url, the creation and deletion of a WebBrowser are repeated, increasing the use of memory.

RP

Written in

Description

74036

2017-7-5

A WebBrowser component in the NRE adopts the WebBrowser2 control. According to the official response from the developer of this embedded interface (i.e. Microsoft), repeated creation and deletion of the control will increase the use of memory due to the control's nature.

Therefore, you are recommended to reuse one WebBrowser continuously after creating it.

onmouseout event of Div fails to occur if you move mouse pointer quickly

If the onmouseout event is set for a Div component that contains child components, onmouseout should occur when a mouse cursor moves through the Div. However, the event will not occur if the cursor moves quickly.

See the below example where the blue and red zones are a Div and Button component respectively. If you move a mouse pointer quickly from the bottom to the top of the Div through the Button, onmouseout may not occur occasionally.

The below HTML code represents the above example, while the code would be more complicated if it was generated with the Button actually placed. The failure to trigger onmouseout in a web browser happens only when a Div tag is nest within another Div tag.

<div id="mainframe.QuickViewFrame.form.Div00" 
    style="left: 141px; top: 504px; width: 400px; height: 115px; 
    background:#0000ff; ">
    <div style="left: 20px; top: 20px; width: 300px; height: 73px; 
        background:red; ">Button00
    </div>
</div>

RP

Written in

Description

76382

2017-10-16

This restriction occurs occasionally when you move a mouse pointer quickly.

Restriction on use of virtual numeric keyboard in accessibility mode

With an app whose accessibility features turn on in iOS, the default type keyboard will appear instead of a numeric keyboard for a component with an editable field even when the component’s inputtype property is set to “number”. This is because, in iOS, a screen will scroll up to the top automatically if a numeric keyboard appears with the accessibility features on. Therefore, Nexacro is programmed to display the default keyboard in such a case.

RP

Written in

Description

78855

2018-03-19

With the accessibility features on in iOS, the default type keyboard will appear instead of a numeric keyboard due to the problem of scrolling, caused by a numeric keyboard.

Script error caused by ActiveX Filtering

If you enable ActiveX Filtering in IE10 or higher, an ActiveX object cannot be used, resulting in the failed execution of the object and a script error.

https://support.microsoft.com/en-us/help/17469/windows-internet-explorer-use-activex-controls

RP

Written in

Description

73214

2017-04-28

This restriction applies to IE10 or higher when ActiveX Filtering is enabled. You should advise users to disable the functionality when executing their applications.

Use of cookies is restricted in iOS depending on update types

If you set the update type to “Update” or “Local” for deploying an app running in iOS, cookies are not allowed for content (Run.html) that is installed in a device’s local directory. If you have to use cookies nevertheless, you should set the update type to “Server” and specify the same domain for two servers: one is the server that manages the content and the other is the request server defined in the transaction method.

With the content file (Run.html) running in a local path (file://), no cookies are allowed. You are also not allowed to access cookies through a script (document.cookie) or to set cookies by using a WKWebView API (WKHTTPCookieStore).

RP

Written in

Description

-

2018-07-30

This restriction results from the prohibition of cookies. The levels of the prohibition are determined according to WKWebView used in the iOS NRE.

Installation of Nexacro-based app fails due in Windows.

Upon the execution of the installation file of a Nexacro-based app running in Windows (nexacroN_SetupRuntime_xXX.exe), the installation can fail due to an error related to api-ms-win-crt-runtime-l1-1-0.dll. This error occurs when your Windows is not updated with the latest version. Therefore, the error will be fixed once you install the latest update.

For example, the error can occur if you have not updated your Windows 7 after SP1. To solve the problem, you should start Windows Update or download a package that can fix the error. Please click the below link for the details.

Update for Universal C Runtime in Windows

https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows

RP

Written in

Description

81751

2018-09-05

This error is caused by the lack of the latest Windows update.

Value of type property of Screen object is predetermined for iPads

When an app is launched in a device, Nexacro will check the type, specifiedos and specifiedlocale properties of defined screens to find the best fit for the device’s display and its operating system. However, only the value "mobile_large" applies to iPad series because those tablets do not provide enough information on their display sizes.

The below list presents related iPad devices. The list can grow as time goes by, depending the plan of the vendor.

Apple iPad 1,2
Apple iPad Air 1,2
Apple iPad Pro
Apple iPad mini 1,2,3,4

RP

Written in

Description

82223

2018-10-11

A screen type is predetermined since related devices do not provide pertinent information.

Date displayed in Calendar differs according to devices.

If a month and day is a single digit (1 to 9), the month and day displayed by a Calendar will vary according to operating environments. This restriction cannot be resolved by Nexacro since how to display a date is controlled by web browsers.

If the popuptype and value properties are set to “system” and “20190501” respectively, for example, an iOS- and Android-powered devices will display "2019. 5. 1." and "2019. 05. 01" respectively. (System language is set to Korean in both OSes.)

In the mobile environment, the dateformat property is set to "yyyy-MM-dd" automatically when the popuptype property is set to “system”. The default value of popuptype is “system”.

Even if the dateformat property is set to "yyyy-MM-dd", the value can be expressed in different formats depending on system environments. With the system language is set to Korean, Android and iOS apply the formats "yyyy.MM.dd" and "yyyy.M.d" respectively.

RP

Written in

Description

83053

2019-03-08

This restriction occurs because how to display a date differs according to OSes and web browsers.

Local file cannot be accessed through url property of WebBrowser

WKWebView in iOS does not allow you to access a file by using the URL scheme File://. Because of this restriction, it is impossible to distribute an HTML file to a local computer and then load the file using a WebBrowser component.

If you want to access an HTML file by using the callMethod method of a WebBrowser, you should set the update type to “Server”, an option selected in the Packing stage for accessing an HTML file located in a server. If you set the update type to “Update” or “Local”, you cannot access an HTML file through a WebBrowser.

RP

Written in

Description

80584

2019-03-26

This restriction is related to WKWebView used in the iOS NRE, preventing you from accessing a local file.

Some Korean QWERTY keyboard produces output of English characters

Korean text input with a virtual keyboard in Android may result in the output of the English characters allocated to the keys that were pressed. This problem occurs when an Android app contains a MaskEdit whose format property includes @ as its value. @ is a mask that prevents the input of non-English languages including Korean.

This restriction applies to some virtual QWERTY keyboards that support Korean language. This anomaly is treated as a restriction because users can select their virtual keyboards at their discretion and it is impossible to deal with all virtual keyboard programs.

RP

Written in

Description

85926

2019-06-28

This restriction applies to some virtual keyboards used in Android.

Grid leaves residual images when resized.

A Grid may leave its residual images when it is resized. This problem can occur when the Grid is laid out within a complicated structure and the application that includes the Grid runs on Internet Explorer running in a slow PC.

A large amount of calculation will be conducted when an HTML page is resized if there are many nodes in the HTML document and the CSS table model is used to express a table. In this process, a Grid may leave residual images depending on the performance of the hardware.

CSS table model

https://www.w3.org/TR/CSS22/tables.html#table-display

RP

Written in

Description

85839

2019-06-27

This restriction is found in IE10 running on Windows 7.

Since this anomaly happens in the process of calculation depending on hardware performance, this restriction may occur in other situations later.

Text is hidden when italicized and aligned to the right

Right side of text may be hidden in a component when the -nexa-text-align and font-style properties are set to "right" and "italic", depending on the values of the font-family and font-size properties.

RP

Written in

Description

88094

2020-02-03

This restriction involves right side of italic text exceeding the border of the component that includes the text. This restriction can occur in both the NRE and the WRE.

Different timings of determining change in date when system calendar is used

The timing of determining a change in a date differs according to operating systems. This restriction applies to a Calendar component that operates in mobile devices and whose popuptype property is set to "system". As this restriction is caused by the difference between OSes, you should check how this restriction applies to the OS on which your application runs.

OS

The timing of determining a change in a date (event occurrence)

Android

An event occurs when a "Confirm" button is pressed after another date is selected.

iOS, iPadOS

An event occurs when you stop changing a date in the spinner of a Calendar.

RP

Written in

Description

88892

2020-03-02

This restriction is caused by the difference between OSes.

imemode Property Value not Being Applied

In operating systems of Windows 8 or later, the IME application method has been changed, resulting in different input methods being set for each application, and the imemode property value is not applied when the focus on the application changes.

For example, if you open Notepad while running the Nexacro app, work on other tasks, and return to the Nexacro app, then the imemode property value of the component that has the first focus is not applied (when the focus is moved to another component after the first component, the imemode property value is applied).

The same applies when you open a window such as alert, confirm, or when you open a pop-up window through another process within the Nexacro app and then move the focus back to the Nexacro app.

In order to maintain the imemode property value in the Nexacro app, the user must manually change the related properties. In the Windows 10 operating system, you need to select the [Advanced keyboard settings > Switching input methods > Let me use a different input method for each app window] item as shown in the figure below (the unselected is the default setting).

RP

Written in

Description

89164

2020-03-27

This is a restriction according to the characteristics of the operating system.

A response can only be given when the user has changed the operating system settings.

canchange and onchanged Events Not Occurring even when ENTER Key is Pressed during Text Editing

The canchange and onchanged events occur when the value property value is changed when the ENTER key is pressed or the focus moves during text editing. However, in some operating systems, the events do not occur when the ENTER key is pressed.

When entering Japanese IME in the iOS/iPadOS operating system Safari browser, if the text input is confirmed with the ENTER key, then the event does not occur. This occurs as the keycode value is processed as an incorrect value when the ENTER key is pressed.

RP

Written in

Description

89615

2020-08-19

This occurs when using Japanese IME in the Safari browser of the iOS/iPadOS operating system.

Parent Window Being Affected when Window Is Closed during HttpRequest Communication Being Processed in Pop-up Window

When the user clicks the close button to close the pop-up window while HttpRequest communication is in progress in the pop-up window opened with the nexacro.open method, the parent window may be closed together or refreshed. This can happen if your network is slow or if the file size you are loading is large.

In the case of the IE browser, the same PID (process ID) is shared in the pop-up window, and if a problem occurs in the pop-up window, then it may affect the parent window.

The problem differs depending on the IE browser options settings. If the [Internet Options > Advanced > Enable automatic crash recovery] item is checked, then the parent window is refreshed, and if not, then the parent window is closed together.

If the problem occurs frequently depending on the work environment and if you do not want it to affect the parent window, then you can disable the "Hang Resistance" function so that even if the problem occurs in the pop-up window, you can force it not to affect the parent window. This is the method of updating the user&rsquo;s PC registry information.

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\

Type: REG_DWORD

Name: HangRecovery

Value: 0

Please refer to the information below.

https://docs.microsoft.com/en-us/troubleshoot/browsers/webpage-fails-to-get-focus-ie-9

RP

Written in

Description

89518

2020-08-19

This occurs when using the IE browser.

Screen Information Being Processed as Wrong Type in iOS 13 or Later Version

When running the Safari browser in iOS 13 or later operating systems, the screen size specified by the app may not be applied. This is the "desktop" type screen information being applied even though the "mobile_small" type screen should be used in iPhone. This occurs when the &ldquo;Request Desktop Website&rdquo; option of the safari browser is turned on in iOS 13 or later operating systems, and if the option is turned on, then the device information cannot be checked.

RP

Written in

Description

90288

2020-08-24

This is a restriction based on the options set by the user in iOS 13 or later operating systems.

It is recommended to guide users to turn this option off.

Line Breaking when Setting fittocontents Property Value

In browsers below IE11, when the fittocontents property value is set to "width" or "both" and the wordWrap property value is set to "char" or "english", a line break may occur. This occurs because browsers below IE11 cannot calculate the correct size depending on the font type or size, and the size changed according to the fittocontents property does not fit.

width: 120
height: 60
fittocontents: width
text: Nexacro N is a platform for software development.
wordWrap: char
font: 11px/normal "Arial" / 12px/normal "Arial"

In the browser IE11 or earlier versions, line breaks may not occur depending on the font size as shown below.

RP

Written in

Description

90155

2020-09-16

This occurs depending on the combination of properties when using the browser IE11 or earlier versions.

To avoid unintended line breaks in the browser IE11 or earlier versions, you must be careful not to use the combination of the fittocontents property and the wordWrap property.

Complete Button Being Displayed when Touching Edit Area Set as readonly

In iOS 12 and earlier versions, when the edit area set to readonly is touched, the complete button is displayed. This has been corrected in iOS 13 or later versions.

The image below is when the HTML input tag set to readonly is touched.

https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_readonly

This occurs when you touch the edit area when the readonly property value of the Edit component is set to true. Even if the readonly property value is not directly specified, the same occurs when readonly is processed by the internal operation of the component. For example, the Combo component processes the comboedit area as readonly when the type property value is set to "dropdown", and if you touch the comboedit area rather than the dropbutton, then the &ldquo;Complete&rdquo; button is displayed.

RP

Written in

Description

90694

2020-10-12

This occurs in iOS 12 or earlier versions.

Restrictions on controlling the pinch-zoom gestures for content loaded from the WebBrowser component

In iOS/iPadOS WRE and NRE, HTML meta tag properties and scripts are used to control the pinch-zoom gestures. Unlike the other components, the WebBrowser component’s property information of the contents loaded in the IFRAME tag area cannot be known in the Nexacro app, and the pinch-zoom gestures cannot be controlled.

Even if the pinch-zoom is disabled in the Nexacro app, if the content loaded in the WebBrowser component allows the pinch-zoom, the pinch-zoom operating within the WebBrowser component area may affect the entire app.

RP

Written in

Description

92685

2021-07-22

This restriction is due to the characteristics of the operating system.

The necessary tags and scripts within the content to be loaded need to be manually written.

Restrictions on using Japanese IME in certain environments

This is an issue in which a value different from the value the user wants to input is entered in the components (Calendar, Grid component, etc.) including the Edit, TextArea component, MaskEdit component, and MaskEditControl where the properties that limit the input (maxlength, inputtype, etc.) are set.

This is a limitation due to the influence of the Microsoft Japanese IME installed during the Windows 10 2004 version update.

This issue may occur differently depending on the Windows version (IME version), application of the “Use an older version of Microsoft IME” in the Windows, and the browser execution environment.

Depending on the execution environment, the following input errors may occur when using Japanese IME.

RP

Written in

Description

94152

2022-03-31

This is an issue in which values cannot be entered normally when using Japanese IME in a specific environment.

An issue in which the text alignment status of the calendaredit area of the calendar component varies depending on the device.

If the popuptype property value of the Calendar component is set to "system", the text alignment status of the calendaredit area varies depending on the execution environment.

If the popuptype attribute value is set to "system", the generated code is used by reflecting the type attribute value of the HTML input element as "date" depending on the execution environment, and the behavior of that attribute varies depending on the execution environment.

Execution Environment

Processing Method

Windows

macOS

The default alignment is "left".

The sorting method can be changed by specifying the -nexa-text-alian property of the calendaredit control.

Android

The default alignment is "left".

The sorting method cannot be changed with style properties.

iOS, iPadOS

The default alignment is “center".

The sorting method cannot be changed with style properties.

RP

Written in

Description

98454

2023-11-23

When the type attribute value in an HTML input element is set to "date", the behavior varies depending on the operating system.

Single quotation marks are not reflected when entered on iOS devices

Provided the option to display the text entered using single quotes when setting the type attribute value if the type attribute value of the MaskEdit component is “string”. For example, if the property value is set as shown below, the characters enclosed in single quotation marks are left intact and displayed in the form of "_A_" in the MaskEdit component.

this.MaskEdit00.format = "@'A'@";

If the Smart Function function is enabled on iOS devices and the format attribute value is set to the value entered by the user on the screen, the user enters the single quotation mark (U+0027) by converting it to the left quotation mark (U+2018) and the right quotation mark (U+2019) as shown below. And it is recognized as a character other than a single quotation mark, so the MaskEdit component is displayed in the form of "_'_'_'.

this.MaskEdit00.format = "@‘A’@";

Since it is not possible to check whether the Smart Punctuation function is activated on iOS devices, be aware when using the function that receives input of single quotation marks from the user. The same applies to all features that compare and process text entered by users, as well as MaskEdit components.

RP

Written in

Description

98527

2023-11-30

This issue occurs depending on whether the Smart Punctuation function is used on iOS devices.

Inability to use Grid component tree expansion/collapse shortcut keys when using SenseReader

If the treeuseexpandkey attribute value of the Grid component is true, regardless of whether accessibility is set, you can use the left and right keys to expand or shrink the tree area cells.

However, when using SenseReader, the left and right arrow keys are given priority as SenseReader shortcut keys, and the tree area cells cannot be controlled with the left and right arrow keys.

Change the virtual cursor to browser mode to use the left and right arrow keys.

If the treeuseexpandkey property value of the Grid component is true and you are using a sense reader, when you move to the Grid component by pressing the Tab key, the virtual cursor changes to browser mode and runs. In this mode, the tree area cells of the Grid component can be controlled using the left and right arrow keys. The feature can be enabled by prompting the user to press the Tab key before accessing the Grid component.

RP

Written in

Description

98654

2023-12-19

This issue occurs due to duplication of shortcut keys when using SenseReader.

Values deleted when attempting to input Korean characters into the Calendar component input window

If the autoselect property value of the Calendar component is set to true, the existing value will be deleted when Korean characters are entered into the calendaredit area in Windows 11 Korean input mode.

For example, when the focus moves to the Calendar component and the text in the calendaredit area is selected, entering "ㄱ" will delete the existing value.

This issue occurs when an event (deleteContentBackward) is sent with an incorrect value when entering Korean characters while the text in the editing area is selected in Windows 11 Korean IME. This is the error of Korean IME, the product cannot receive appropriate information when entering Korean, and this error cannot be corrected.

RP

Written in

Description

97051

2024-1-25

This issue occurs due to a Windows 11 Korean IME error.

Difference between Browsers

Difference in displaying cursor in editable field

If a component with an editable field has the readonly property set to "true", a cursor will be displayed in the field differently according to browsers. The value of readonly will be applied regardless of how to display a cursor, and you cannot edit the text in the editable field.

Browsers

How to display cursor

Firefox, IE

A cursor is displayed in an editable field, plus you can change the position of the cursor by clicking a mouse.

[NRE], Chrome, Edge, Safari

A cursor is not displayed.

RP

Written in

Description

37637

2014-09-24

This is a problem caused by the difference between browsers.

Restriction on style-related properties

The below table is a list of style-related properties that are not supported by Nexacro or are supported in some browsers only.

Property

Support

Remark

edge


This property can work improperly depending on its input value.

If it works improperly, the background image will be displayed differently according to browsers.

cursor


This property provides a function to switch the type of a cursor if there is a change in the element over which the cursor hovers. The change in the element was caused by a change in another property while the cursor does not move. However, the aforementioned function may not be performed properly.

RP

Written in

Description

40056

2015-02-26

background > imageedge (edge)

Difference in text alignment when string contains line feed character

A string is aligned differently in the NRE and web browsers if the string contains a line feed character. This anomaly also entails the component’s -nexa-text-align and wordwrap properties that are set to “center” and “none” respectively.

This restriction applies to a Button, Static, FileDownload and GridCellControl object.

RP

Written in

Description

47603

2016-03-30

With the -nexa-text-align and wordwrap properties set to “center” and “none” respectively, the relevant object will center its text based on the text area rather than on its size. This anomaly occurs when the whiteSpace property is set to “pre” in the HTML document. Meanwhile, the NRE is internally equipped with an alignment function, which produces a different result.

Restriction on hotkey property

The hotkey property can work differently according to browsers if you specify the property with a value that is the same as one of the keyboard shortcuts defined by web browsers.

RP

Written in

Description

48488

2016-07-05

This problem is caused by the difference between browsers. Therefore, we recommend you not to specify hotkey with a value that is the same as one of the keyboard shortcuts defined by web browsers.

Difference in presenting file paths in FileUpload

With the multiselect property set to "true", a FileUpload component will present file paths differently according to browsers.

Browsers

How to present file paths

[NRE]

File path + file name

Chrome, Edge, Firefox, IE, Safari

file name

With the multiselect property set to "false", a FileUpload component will present file paths differently according to browsers.

Browsers

How to present file paths

[NRE]

File path + file name

Chrome, Edge, Firefox, IE, Safari

Fake path + file name

With multiselect set to "false", a FileUpload running in IE can present an actual file path rather than a fake path depending on the Internet Options set by IE users.



RP

Written in

Description

69218

2016-09-06

This problem is caused by the difference between browsers. File uploading will be conducted successfully although the methods of presenting file paths are different across browsers

81686

2018-09-05

The explanation—about displaying a file path when the multiselect property is set to "false"—has been modified. A fake path rather than an actual file path is displayed in Microsoft Edge or Internet Explorer.

Difference in processing repeated child frame names produced by open method

A script error occurs in Internet Explorer 8 and thus a pop-up fails to appear when you call the open method of nexacroAPI multiple times. This error occurs when you specify all the strName parameters with the same value. The parameter is designed to define the name of a child frame opened by the method.

While a script error will not occur in the NRE or web browsers under the same condition, this problem is caused by the difference between browsers in processing pop-ups.

Browser

Transaction type

How to process pop-ups

[NRE]

Synchronous

It processes pop-ups consecutively.

Chrome

Asynchronous

It processes only the JavaScript codes written for the last pop-up.

Firefox

Asynchronous

It processes only the JavaScript codes written for the first pop-up.

IE

Asynchronous

It processes all JavaScript codes for opening pop-ups, which in turn causes a script error.

When a pop-up is opened, the ID of the child frame can be processed differently between browsers and even versions within the same browser. Therefore, we advise you not to specify the same ID for multiple frames.

RP

Written in

Description

70213

2016-12-05

This problem is caused by the difference between browsers.

Difference in processing alert or confirm method that is included in a function

Google Chrome and Safari process the alert or confirm method earlier than any other codes when those method are included in a function.

For instance, the below sample codes are intended to print the string "TEST" first and then execute the alert method. However, Google Chrome and Safari will call alert first and will not print "TEST" until you close the alert window.

function fn_click() {
	document.write("TEST");
	alert("TEST");
}

Browsers

Behavior

[NRE], Firefox, IE

A script is executed from top to bottom without any interference.

Chrome, Edge, Safari

The alert or confirm method is executed first and then the rest of the script is executed after the dialog is closed.

RP

Written in

Description

71291

2017-01-09

This problem is caused by the difference between browsers.

84124

2019-03-07

Safari is found to behave in the same way as Google Chrome.

Slow application of visible property

When you change the value of the visible property of a component through a script, subsequent codes may be executed before the status of the component displayed on the screen changes. This problem occurs often in IEs running in low-performance PCs.

RP

Written in

Description

71551

2017-01-31

When you change the value of visible, the change will be applied to the DOM object in the relevant HTML document. The rate of such process may vary according to devices and browsers

Therefore, you should design the statements in your script to be processed consecutively. Otherwise, you can fine-tune the timing of applying the change by using a timer event.

Sequence of onmouseenter and onmousemove events

If a component has both the onmouseenter and the onmousemove events, the sequence of the events varies depending on browsers. The below table presents the sequences according to browsers.

Browsers

Sequences

IE

onmousemove > onmouseenter

[NRE], Chrome, Edge, Firefox, Safari

onmouseenter > onmousemove

RP

Written in

Description

71731

2017-02-10

This problem is caused by the difference between browsers.

Base for executing trackPopup method

The base for opening a component (PopupDiv or PopupMenu) can vary when calling the trackPopup method. In the NRE, the frame area including a titlebar serves as the base while the contents area excluding a title bar serves as the base in web browsers. Therefore, the position of opening a component can vary even when the same coordinate values are specified with the showtitlebar property set to "true".

Alternative scripts

Modifying the trackPopup method is not viable for removing the difference between the NRE and WRE because such modification can cause the failure to execute a script. There are two alternatives; one is the use of the trackPopupByComponent method. The other is the removal of the frame area in the NRE when calculating the position of opening a component.

// Using the trackPopupByComponent method
var x = this.Button00.getOffsetLeft();
var y = this.Button00.getOffsetBottom();
this.pdiv.trackPopupByComponent(this, x, y);
// Removing the value of the frame area in the NRE
var objBut = this.Button00; // Button serving as the base for opening the component
var v_nX = system.clientToScreenX(objBut, 0) - system.clientToScreenX(application.mainframe, 0);
var v_nY = system.clientToScreenY(objBut, parseInt(objBut.height)) - system.clientToScreenY(application.mainframe, 0);
var v_sRet = this.pdiv.trackPopup (v_nX, v_nY);

RP

Written in

Description

71863

2017-03-14

This problem is caused by the difference between the NRE and web browsers.

Difference in results of executing nexacro.getTextSize

The getTextSize method is used to calculate text size by factoring into its parameters. However, calculation results may vary according to browsers.

Calculation results can vary according to browsers as well as the arguments of the parameters. The below table shows the difference in results when the method is executed with certain arguments in different browsers. The below table is presented just to help your understanding.

this.Static00.set_text("nexacro");
this.Static00.set_font("10 Arial");
var textSize = nexacro.getTextSize(this.Static00.text, this.Static00.font, null, "none", 0);
trace(textSize.nx, textSize.ny); // result

Browsers

Results

IE11

47, 15

[NRE], Safari

46, 16

Firefox

46, 15

Chrome, Edge

47.42295837402344, 15

RP

Written in

Description

72660

2017-6-20

This is a problem caused by the difference between browsers.


2017-10-10

Sample code is added.

Restriction caused by transaction method executed in synchronous mode

You can set the synchronous mode for transmitting data by setting the bAsync parameter of the transaction method to "false". In this case, however, your app may not work properly in some browsers.

Browsers

Bugs

Chrome, Firefox, Edge

A message will appear, indicating that the request is deprecated.

IE

Focus will be lost after the calling of the transaction method.

RP

Written in

Description

74564

2017-07-25

This is a problem caused by the difference between browsers.

Some browsers are treating the synchronous data transmission mode as deprecated due to its negative effect. Further restrictions can be imposed in the future as browsers update their versions.

Text Entered in Edit Blinks

Text entered in an Edit component can appear blinking or moving if you enter the text, move the focus out from the Edit and bring the focus back to the component.

RP

Written in

Description

75016

2017-7-27

This is a problem caused by the difference between browsers.

This bug occurs in IE running in Windows 7.

Restriction on Calling of setPrivateProfile or getPrivateProfile Method in Safari

A script error will occur if you call the setPrivateProfile or getPrivateProfile method of an Application object when you use Safari. The error will occur in the below-mentioned case and is attributable to Apple's policies for Safari.

RP

Written in

Description

43492

42186

2015-6-25

You cannot use the localStorage function if you set a specific option when you use Safari. By contrast, you can use the setPrivateProfile or getPrivateProfile method if you do not set that option.

This restriction applies to Safari running in the iOS, Windows, or macOS environment.

Caret in Edit Penetrates Another Component

This error occurs when another component hovers over an Edit component. If you move focus to the under-lying Edit, a caret in the Edit will appear penetrating the hovering component.

RP

Written in

Description

75777

2017-09-05

This incident occurs in Microsoft Edge and IE when the browsers process the <input> tag surrounded by the <div> tag.


2020-03-24

This incident does not occur in Microsoft Edge of the version 80 or higher.

We have specified Microsoft Edge's versions where this incident occurs.

IE fails to process pending events while it is taken up for a certain amount of time by a specific script

IE fails to process pending events while it is taken up for a certain amount of time by a script that conducts the sleep method of a Form or performs a repetitive statement like a for-loop.

Let us assume that you trigger an event by clicking a Button component while sleep is being executed in IE. In addition, assume that you have designed the script to process the Button-triggered event after the span specified by the parameter of sleep. However, you will find IE failing to process the event.

RP

Written in

Description

75144

2017-8-18

This is a restriction created by Internet Explorer.

When codes are blocked by IE, events will be deleted with the body part losing focus.

Different behavior between browsers when the 'undo' item is selected from a context menu

Browsers show different behavior in response to the 'undo' command. This restriction is faced under the following condition. To begin, select text in an editable component, right-click to open a context menu and choose 'Delete' or 'Cut'. Then, move the focus to another component, open a context menu and choose 'Undo'. This is the point when the restriction has an effect.

Browser

Result

Chrome, IE11, Edge

The "Undo" operation will not be conducted even if you select "Undo".

Firefox

The context menu opened from the latter component has an inactive 'Undo' item, so you cannot select it.

[NRE], Safari

The context menu opened from the latter component has no 'Undo' item, so you cannot select it. Moreover, you cannot apply the 'undo' shortcut.

When you use the <input> tag of HTML, executing the 'undo' command yields partially different results compared to the NRE. The reason for this difference is that some browsers cannot deliver the event triggered by the 'undo' command.

Browser

Result (Only <input> tag is used in HTML document)

Chrome, IE11, Edge

The deleted or cut value will be restored with focus going back to the previous component.

Firefox

The context menu opened from the latter component has an inactive 'Undo' item, so you cannot select it.

Safari

The context menu opened from the latter component has no 'Undo' item. However, the deleted or cut value will be restored with focus going back to the previous component when you enter the Ctrl+Z shortcut.

RP

Written in

Description

75871

2017-10-10

This is a restriction caused by the difference between browsers.

Restriction on calling of alert and confirm methods within onbeforeexit or onexit event

Some browsers may fail to call the alert and confirm methods if they are written within the handler of the onbeforeexit or onexit event of an Application object. Browsers should call those methods indeed unless they are written within the handler of those events.

Browser

Result

Chrome, Edge, Firefox,

Those methods are ignored within the handler of the onbeforeexit or onexit event.

[NRE], IE, Safari

Those methods are called within the handler of the onbeforeexit or onexit event.

The onbeforeexit event is designed to bring in the beforeunload event of HTML.

The HTML5 specification states that calls to the alert and confirm methods may be ignored during the beforeunload. And behavioral difference exists because each browser processes this event differently.

https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

RP

Written in

Description

76480

2017-10-10

This is a restriction caused by the difference between browsers.

85783

2019-06-28

The onexit event is also found to be affected by the same restriction.

Focus fails to move to editable component when you make touch actions quickly

This restriction is caused by the Safari browser running in the iOS environment when there is an editable component like an Edit. If you touch another component and then an editable component quickly, the editable component will not become focused while the 'focused' status-class will apply to the component.

This is a browser-specific restriction. Nexacro changes the status-class of the editable component when a touch event occurs in Safari. However, Safari fails to move the focus although the browser has triggered the touch event. Accordingly, Nexacro cannot correct this problem since Safari successfully delivers the event to Nexacro although it fails to move the focus.

RP

Written in

Description

77192

2017-11-27

This restriction occurs in Safari running in the iOS environment.

The change in a status-class is legitimate because it results from the process of handling an event from a browser. Therefore, this problem will be resolved automatically when the browser removes this restriction.

Div blinks when focus moves to an editable child component that is partially hidden

This restriction is caused by Internet Explorer (IE) when a Div component contains an editable component that is partially hidden. If focus moves to the editable component, IE is designed to scroll the Div so that the editable component shows entirely. In this case, however, Nexacro is designed to scroll the Div back to the original position because the previous scrolling was not intended by a user. Going through the whole process, the entire Div may appear to blink.

Normally, components inside a Div will not be hidden upon the screen loading. However, the components can be hidden when you resize the Div, and this is when the blinking of the Div can occur.

RP

Written in

Description

76992

2017-11-28

This restriction occurs in IE.

Caret moves unintentionally if focus moves to editable component when wait cursor shows

In the editable field of a component, you can see a caret moving to the end of the field rather than showing in the position that you click. This problem occurs as the following two actions happen at the very same time: one is moving focus to the component by clicking and the other is calling transaction or setWaitCursor method.

This restriction applies only to Internet Explorer (IE). The cause is that a layer for a wait cursor is activated, and the layer overlaps the editable field of a component. This restriction occurs when an <input> tag is nested within a <div> tag.

RP

Written in

Description

77440

2017-12-14

This restriction is caused by the difference between browsers.

It occurs in IE.

Event bubbling when enable property is set to 'false'

As for editable components, rules of event bubbling (to a Div or Form) are different according to web browsers. This restriction is imposed when you click the editable fields with the enable properties of those components set to 'false'.

Browsers

Event bubbles or not

Firefox

An event does not bubble to parent components.

[NRE], Chrome, Edge, IE, Safari

An event bubbles to parent components.

You can test this restriction with the below HTML code. If you click the inputtable field of the component at the lowest level, the onmousedown event within the <div> tag will be fired in the browsers that bubble the event. In Firefox and Microsoft Edge, however, the event will not be fired.

<div onmousedown="console.log('div onmousedown')">
	<input type="text" disabled>
	<input type="text">
</div>

This restriction applies only to an editable field. For example, a click-related event will not bubble if you click the editable field of a Calendar. Meanwhile, the same event will bubble if you click the button or DatePicker control of the Calendar.

RP

Written in

Description

77734

2018-01-16

This restriction is caused by the difference between browsers.

File dialog cannot be opened by callback

Certain web browsers fail to open a file dialog when a method called by a callback attempts to open the dialog. Here, the callback is programmed to operate after the execution of the transaction method. For example, a file dialog will fail to be opened when the importData method of an ExcelImportObject is called by such a callback.

The isTrusted property is set to “false” for an event defined in a script rather than an event fired by a user’s click. Certain web browsers restrict some actions when isTrusted is set to “false”.

Browsers

Behavior

Firefox

A file dialog cannot be opened.

[NRE], Chrome, IE, Firefox, Edge, Safari

There is no restriction

Internet Explorer do not support the isTrusted property.

RP

Written in

Description

83198

2018-12-18

This restriction is caused by the difference between browsers including the NRE and web browsers.


2020-03-24

The contents on this restriction are changed after testing the browsers of their latest versions as of February 2020.

Component does not appear when trackPopup comes after alert or confirm

In some browsers, the trackPopup method seems not to be executed when the execution comes after alert, confirm or other methods that require users to click a button to close a dialog (See the below sample code). This restriction can occur to a PopupDiv or PopupMenu component.

this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	confirm('test');
	this.PopupMenu00.trackPopup(0,0);
};

Although the trackPopup method is in normal progress, closing a dialog will fire the ondeactivate event at the exact time when the execution of trackPopup begins. As a result, the component is closed as soon as it appears.

To avoid this restriction, which applies to Google Chrome and Opera, you should not use the alert/confirm method and the trackPopup method consecutively.

RP

Written in

Description

83521

2019-02-13

This restriction is caused by the difference between web browsers.

Application behaves differently when first-focused component holds editable field

A screen will behave differently according to operating systems and browsers if an editable field is held by the first component that receives focus after the loading of the screen.

Operating environments

Display of caret

Display of virtual keyboard

Desktop

O

Not applicable

Android NRE

O

O

Android Default Web Browser

O

X

iOS NRE

X

X

iOS Default Web Browser

X

X

RP

Written in

Description

81363

2019-01-07

This restriction is caused by the difference between OSes and web browsers.

Caret in TextArea is placed outside screen when virtual keyboard appears

A caret in a TextArea cannot be displayed on the visible area of the screen when you move the caret to a certain position in the component and then a virtual keyboard appears. This anomaly happens when text is written on multiple lines. There will be too many possible positions of a caret if a TextArea is bigger than the visible area of the screen while a virtual keyboard is displayed on the screen. Since it is impossible to deal with all every possible case, this issue is defined as a restriction.

This restriction has been confirmed in the default browser of Android. This restriction may be found later in other running environments.

RP

Written in

Description

81443

2019-01-07

This restriction is caused by the difference between OSes and web browsers.

Text is hidden partially when padding applies to component

Text inside a component will be displayed in varying ways according to components and browsers with the padding property applied. This anomaly occurs when the text and padding areas overlap.

In the below example, the padding areas of the Edit and Button components are all set at 20px. In the NRE, the text is hidden as much as the sizes of the padding areas. In Google Chrome, however, the text is not hidden under the padding areas as the web browser applies the padding property partially, although the application of this technique varies according to components.

Browser

How text is displayed

[NRE]

Text will be hidden as much as the size of an overlapping area.

Edge, Firefox, IE, Chrome, Safari

Text will not be hidden as the position of text will be adjusted when the text and padding areas overlap.

RP

Written in

Description

78470, 78181

2018-03-02

This restriction is caused by the difference between OSes and web browsers.

Text appears truncated under certain styling conditions

If a specific font is applied when the top and bottom padding property values are not applied, the bottom part of the text is cut off.

Condition

Processing method

When using IE10 browser in Windows 7 or Windows 8 operating system

The text is cut off and displayed.

The issue of the text being cut off can be bypassed by forcibly setting the top and bottom padding property values or using a different font.

RP

Written in

Description

84219

2019-03-20

This is a limitation that occurs because the processing method differs depending on the operating system and web browser.

Text is partially hidden when wordwrap property is set to "english"

With the wordWrap property of a component set to “english”, the NRE and web browsers display the text in the component in different ways when the width of the component shrinks to a certain extent.

In the below image, for example, the two segments surrounded by red rectangles are the result produced by Google Chrome while those without red rectangles are produced in the NRE. When the widths are enough for the entire text, both the NRE and a web browser show the same result. When the widths are not enough for the entire text, however, the NRE breaks lines within a word while a web browser does not show the portion of text that exceeds the border line.

This restriction applies to the components that have the wordWrap property, except for the TextArea component.

See the below restriction to learn how text is aligned according to browsers when the wordwarp property is set to "none".

Difference in text alignment when string contains line feed character

RP

Written in

Description

82114

2019-03-14

This restriction is caused by the difference between OSes and web browsers.

Clicking Cancel button in file dialog of FileUpload leads to different behaviors

Assume that you open a file dialog by clicking the Find button of a FileUpload component and then select a file. Next, you click the Find button again and then click the Cancel button to close the dialog without selecting any file. Eventually, you will find that the previously-selected file has been removed from the FileUpload after closing the file dialog.

Because clicking the Cancel button calls off the previously-selected file, the relevant item will be removed from the filelist property, followed by the occurrence of the onitemchanged event. This incident can occur only in Google Chrome.

-- the onitemchanged event occurs when you select a file
onitemchanged / this.FileUpload00.filelist[e.index]: [object VirtualFile]
onitemchanged / e.newvalue: C:\fakepath\a.png
onitemchanged / e.oldvalue: 
-- the onitemchanged event occurs when you click the Cancel button without selecting a file.
onitemchanged / this.FileUpload00.filelist[e.index]: undefined
onitemchanged / e.newvalue: 
onitemchanged / e.oldvalue: C:\fakepath\a.png

Browser

Behavior

Chrome, Edge

Clicking the Cancel button removes the information on previously-selected files.

Clicking the Cancel button fires the onitemchanged event.

[NRE], IE, Firefox, Safari

Clicking the Cancel button leads to nothing.

This issue has been reported to Google, who provided an answer that this is a feature of the browser.

https://bugs.chromium.org/p/chromium/issues/detail?id=2508

You can also find this behavior when you use a file input (the <input type="file"> tag) in Google Chrome.

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

RP

Written in

Description

84900

2019-04-23

This restriction is caused by the difference between browsers.

Difference between browsers shown when component with editable field is scrolled out of view by mouse wheel

Browsers show different behaviors when you enter text in an editable field that is placed out of the screen. This restriction occurs when you move the screen by using a mouse wheel in the middle of entering text in a component with an editable field like an Edit or TextArea. In such a case, some browsers will adjust its scrolling position to get the component back into sight while other browsers do move the screen.

For example, Internet Explorer will change its scrolling position to bring a component from the outside to the top of the screen.

Even if a browser does not adjust its scrolling position, leaving a component outside the screen, you still can keep entering text because the focus and caret will stay in the component.

Browsers

How they scroll the screen

IE

They will move its scrolling position to the component where text is being entered.

Text can be entered as normal.

[NRE], Chrome, Edge, Firefox, Safari

They will not move its scrolling position.

Text can be entered as normal.

RP

Written in

Description

84876

2019-04-24

This restriction is caused by the difference between browsers.


2020-03-24

The contents on this restriction are changed after testing the browsers of their latest versions as of February 2020.

Difference between browsers over virtual keyboard shown when focus moves to content loaded by WebBrowser

In the NRE, an editable field will be hidden by a virtual keyboard that appears after the field is focused. This anomaly occurs when the editable field is included in the content defined as a value of the url property of a WebBrowser.

Browsers

Whether editable field is hidden by virtual keyboard

Web browsers

An editable field will not be hidden by a virtual keyboard.

[NRE]

An editable field will be hidden by a virtual keyboard.

RP

Written in

Description

83857

2019-03-26

This restriction is caused by the difference between browsers.

Border of PopupDiv is not displayed when placed upon SWF content

Various restrictions can occur when HTML content is placed upon SWF content. In Internet Explorer, for example, the border of a PopupDiv may not be displayed if the component is placed on SWF content. In this case, you should add the option wmode="transparent" to the SWF content.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="200" id="myFlashContent">
        <param name="movie" value="./logo.swf" />
        <param name="wmode" value="transparent" />
        <!--[if !IE]>-->
        <object type="application/x-shockwave-flash" data="./logo.swf" width="800" height="200">
            <param name="wmode" value="transparent" />
        <!--<![endif]-->
            <a href="http://www.adobe.com/go/getflashplayer">
                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
        <!--[if !IE]>-->
        </object>
        <!--<![endif]-->
</object>

Having been an issue since long ago, this restriction is related not to Nexacro but to SWF content.

https://stackoverflow.com/questions/2040887/div-z-index-issue-with-flash-movie

RP

Written in

Description

83596

2019-04-03

This restriction is caused by the difference between browsers.

onclose of MainFrame fails to occur in web browser

The onclose event of a MainFrame object will not occur even if you close a web browser or its tab. The below table presents the cases where onclose occurs according to browsers.

Browsers

When onclose occurs

[NRE], web browsers

When the exit method of an Application object is called

[NRE]

When you click the Close button on the title bar of a MainFrame object

RP

Written in

Description

85783

2019-06-28

This restriction is caused by the difference between the NRE and web browsers.

Border of PopupDiv is not displayed when placed upon Plugin

The border of a PopupDiv may not be displayed if the component is placed upon ActiveX content (windowed plug-in) loaded by a Plugin component. The portion of the border in the overlapping area will be hidden. The Plugin component should be restructured to resolve this problem. However, it has been decided that this restriction will remain because the attempt to fix it may have a large impact.

RP

Written in

Description

85137

2019-05-30

This restriction is caused by the difference between browsers.

oncelldblclick event of Grid is processed differently according browsers

This restriction occurs when the edittype property of a Grid cell is set to button, date, mask, readonly, text or textarea—values with which clicking the cell prompts the activation of an editable control. Depending on browsers, double-clicking the cell does not fire the oncelldblclick event.

A new control varying according to edittype is exposed in a Grid cell after the cell is clicked. However, a double-click can fail to be processed depending on browsers.

Browsers

Sequence of events

Firefox

oncellclick -> oncellclick

[NRE], Chrome, Edge, IE

oncellclick -> oncellclick -> oncelldblclick

RP

Written in

Description

84981

2019-07-12

This restriction is caused by the difference between browsers.

Mouse wheel scrolling does not work in WebBrowser

Mouse wheel scrolling may not work in a WebBrowser component. This restriction occurs when you set the url property of the WebBrowser with content from a domain different from the current one. Moreover, the scrollbars of the WebBrowser are activated due to the content size while the scrollbars in the content have been removed forcibly.

Browsers

Whether mouse wheel scrolling works

Chrome, Edge, Firefox, IE, Safari

They do not process the events related to mouse wheel action.

[NRE]

Mouse wheel scrolling works.

RP

Written in

Description

86008

2019-09-18

Handling of the events generated from an IFRAME is impossible in a cross-domain environment due to the same-origin security policy.

Error when Entering Input Characters Quickly for Japanese IME Input

When the type property value of the MaskEdit component is set to "string", the format property value is set to "99-99-99", and when Japanese IME is entered, the caret position or input value may be incorrectly processed in the following cases.

The format property value is an example and restrictions may occur in other settings as well.

The same can occur with the Calendar, Grid, and Spin components that use MaskEditControl.

This is a problem caused by browser-specific differences in how caret position is processed at the DOM level, and it cannot be correct in Nexacro.

RP

Written in

Description

89301

88784

2020-06-11

It occurs in the Windows operating system with Chrome and Edge (version 80 or later).

It is the difference in how individual browsers operate.

Content Not Being Displayed after Page 2 for system.print Method Execution

When the target content to be displayed exceeds 2 pages, the content cannot be displayed after the 2nd page for the system.print method execution in the Firefox browser.

The content not being able to be displayed after the 2nd page also occurs even in the HTML/CSS contents using the position:absolute style.

This problem has been registered as a browser bug related to the position:absolute style.

https://bugzilla.mozilla.org/show_bug.cgi?id=546559

https://bugzilla.mozilla.org/show_bug.cgi?id=179135

RP

Written in

Description

89569

2020-06-26

It occurs in the Firefox browser.

It is the difference in how individual browsers operate.

Japanese Input Being Reflected as value Property Value before Confirmation

In the Chrome and Edge browsers, if you select the character string that was confirmed after Japanese IME input using the CTRL+A shortcut key and reenter the same character as the first character, then the character entered before the confirmation may be reflected as the value property value.

For example, if you enter and confirm the character string "あああ" in the Edit component, and then select "あ" with the CTRL+A shortcut key, then the value property value is reflected as follows.

Browser

value

Chrome, Edge

[NRE], Firefox, IE, Safari

あああ

RP

Written in

Description

89944

2020-09-07

It is the difference in how individual browsers operate.

Differences in the IME action when the focus is on the MaskEdit component text editing area

The MaskEdit component can only input limited ASCII characters according to the type and format property settings.

For user convenience, some browsers that can control the use of the IME disables the IME (English character input mode) when the focus is placed on the text editing area of the MaskEdit component. With the IME disabled, only the input of ASCII characters are allowed. When the IME is enabled (Korean, Japanese, Chinese input mode) in Chrome and Edge browsers where the IME use cannot be controlled, text input is not allowed or only some characters are allowed.

Browser

IME processing method with focus

[NRE], IE, Firefox

IME disabled

Chrome, Edge

(Chinese, Japanese IME) Characters cannot be input when the IME is enabled.

(Korean IME) Only numbers and special characters can be input, and other characters cannot be input when the IME is enabled.

If the IME is disabled when using the Korean or Japanese IME, the input mode display icon is displayed with the 'X' as follows. Depending on the execution environment, the 'X' mark may not be displayed. The Chinese IME does not change the input mode display icon.

When NRE is running, the Korean, Japanese, and Chinese IME input mode display icons are forcibly changed to English character input mode and cannot be changed.

The IME disabling uses the CSS ime-mode property.

This property is in a deprecated state and its support may be discontinued depending on the updates of the browser manufacturers.

https://developer.mozilla.org/en-US/docs/Web/CSS/ime-mode

RP

Written in

Description

90516

2021-06-09

Differences in how individual browsers operate.

93598

2021-12-16

This supplements the description of the operation in Chrome and Edge browsers and the description of restrictions when using Korean, Japanese, and Chinese IMEs.

Restrictions on using SVG files

SVG files can be used in any property or method that allows you to specify an image file. Nexacro Studio can also use SVG files as image resource files.

The SVG files are supported in version 20.0.0.700 or higher.

Restrictions on using NRE SVG files

Item

Explanation (NRE restrictions)

Properties

The viewBox element, width, height properties must be set in SVG.

Units

When setting the width and height property values, you can only set them in "px" units.

The "%" unit cannot be used.

Data URI

It cannot be set in Data URI format other than SVG file.

Style

The style element is not supported, only the style attribute of each element.

(X) <style>...</style> <circle cx="5" cy="5" />

(O) <circle cx="5" cy="5" r="4" style="..."/>

Splash Image

When setting Build App > Splash > Image File (Splash Image), SVG files are not supported.

Others

'BackgroundImage' is not supported in the “in” property of the feComposite element.

NRE support specifications may vary depending on the skia support range and limitations.

Version 20.0.0.700 operates based on the skia chrome/m97 version.

We recommend setting the width and height attributes of the viewBox element to the same values as the SVG width and height attributes. Different values can affect the performance.

Restrictions on using WRE SVG files

Basically, WRE follows each browser's scope of supportation and limitations.

However, there are restrictions on using SVG files as image-related property values of components in the following cases.

Item

Explanation (When setting auto-size properties in WRE)

Properties

The viewBox element, width, height properties must be set in SVG.

Units

When setting the width and height property values, you can only set them in "px" units.

The "%" unit cannot be used.

Restrictions on using Nexacro Studio SVG files

Unsupported properties and methods

SVG files cannot be used if the property or method description states that only certain file extensions can be used.

RP

Written in

Description

93266

2022-03-29

Differences in how individual browsers operate.

An issue in which the window is closed when the focus is moved to the address bar of the pop-up window opened by executing the open method and the F5 key or the Enter key is pressed.

In a pop-up window opened by executing the open method, if the user moves the focus to the address bar and attempts to refresh it by pressing F5 or pressing Enter, the window is closed.

When the user performs this action, the event information transmitted from the browser does not include the accurate information, and it can’t be determined whether the user intends to close the window or refresh the window. Therefore, this action is processed by closing the pop-up window.

User’s action

Desktop NRE

Desktop WRE

Focusing on the address bar

Press F5 or Enter

Address bar

not displayed

Pop up window closed

onbeforeclose, onclose events do not occur

Focus of Form

Press F5

onkeydown, onkeyup events occur

Refreshing not processed

onkeydown, onkeyup events do not occur

Refreshing not processed

After running the context menu

Select refresh(reload)

Refreshing processed

Pop up window closed

onbeforeclose, onclose events do not occur

RP

Written in

Description

96277

2023-04-10

Differences in how individual browsers operate.

Restrictions Inherent in Nexacro

Restriction on popuptype property of Calendar

There will be change in the range of supported events if the popuptype property of a Calendar component is set to "system" in mobile devices. The supported/unsupported events are listed below.


Events

Supported

canchange, onchanged, oncloseup, oncontextmenu, ondrag, ondragenter,

ondragmove, ondrop, ondropdown, oneditclick, oninnerdatachanged, oninput,

onkeydown, onkeyup, onkillfocus, onlbuttondown, onlbuttonup, onmouseenter,

onmouseleave, onmousemove, onmove, onrbuttondown, onrbuttonup, onsetfocus,

onsize, ontouchend, ontouchmove, ontouchstart

Unsupported

ondayclick

RP

Written in

Description

47974

2016-05-13

Some events cannot be supported depending on the value of the popuptype property of a Calendar component.

Color fails to be copied from cell in Excel file exported from ExcelExportObject

If you copy a cell in an exported Excel file and paste it into a new Excel document, the color defined in the copied cell will not be copied. This problem occurs with the exporttype property of the ExcelExportObject set to nexacro.ExportTypes.EXCEL when the Excel file was exported.

The exporttype property defaults to nexacro.ExportTypes.EXCEL.

RP

Written in

Description

48114

2016-05-18

From Excel 97 through 2003, a user-defined color only can apply to the relevant file. Therefore, when you copy a cell and paste it into a different file along with a user color, the cell will be presented in a different color because the information on the user color will not be found.

Restriction on selecting multiple cells in Grid after zooming in/out

Selection of multiple Grid cells will function differently from your intention when you drag-select those cells after you have zoomed in or out on the web page. This problem occurs when the selecttype property of the Grid is set to “multiarea”. The function of selecting multiple cells uses screen coordinate values because cells should be selected even if the mouse pointer leaves the Grid area in the process of selection. This mechanism causes the malfunction.

Browser

Conditions for restriction

Web browsers

When using the zoom in/out features of web browsers

RP

Written in

Description

70879

2017-01-17

The below causes are the reasons for the selection of unintended cells.

1) The component will be resized on the screen after zooming in or out, but its size will not change in the HTML node.

2) As the component is resized on the screen, the area selected by the mouse pointer will change.

Restriction on printing out WebBrowser

Normally, the System.print method prints out the whole area of a Form, including the hidden area to which you have to scroll to present the area on the screen. If a WebBrowser component is included in the Form, however, such a hidden area will not be printed out while only a currently-seen area will be printed. The reason is that, in that case, calling the System.print method will lead to the execution of the window.print method of JavaScript.

Browser

How to process the System.print method

[NRE]

Prints out the whole area of a Form regardless of a WebBrowser included in the Form

Chrome, Edge, Firefox, IE, Safari

Prints out the only currently-seen area of a Form when a WebBrowser included in the Form

In the below sample, two Edit components are placed on the upper and lower sides of a Form while a WebBrowser component is placed on the right-hand side, showing a map. If the System.print method is called in the NRE, the area of a red rectangle will be printed out. By contrast, the area of a blue rectangle will be printed out in web browsers as the area is currently seen on the screen.

RP

Written in

Description

71680

2017-02-08

The way of processing the system.print method is different between the NRE and web browser environments due to web browser-related restriction.

Difference between Nexacro and JavaScript methods

If you call the alert or confirm method without specifying a selector, the relevant methods from JavaScript will be executed. Those JavaScript methods may function differently to those from Nexacro.

this.Button00_onclick = function(obj:nexacro.Button,  e:nexacro.ClickEventInfo) {
	alert("TEST"); // javascript alert method
	this.alert("TEST"); // Form object alert method
	nexacro.getApplication().alert("TEST"); // Application object alert method
}

As seen in the below picture, methods redefined in Nexacro include codes for performing the platform's unique algorithms. Therefore, those will be processed in a way different to basic JavaScript methods.

RP

Written in

Description


2017-05-22

This restriction occurs because some methods of Nexacro share the same names as their counterparts in JavaScript. Accordingly, we recommend you to specify the selector Form or Application in your codes.

Restriction caused by HTTP Header

If you set HTTP headers on the server side or use meta tags in HTML documents, some features of your application can be restricted according to security policies. The natures of the product account for such restrictions.

Content-Security-Policy

If you apply this policy, some functionalities may not work depending on the settings of directives. Nexacro libraries include codes containing eval functions and in-line scripts. Such codes can conflict with the policy.

Therefore, you should add directives that grant permission for eval functions and in-line scripts, as presented below.

<meta http-equiv="Content-Security-Policy" 
    content="default-src *;
    style-src 'self' 'unsafe-inline'; 
    script-src 'self' 'unsafe-inline' 'unsafe-eval'">

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

X-Frame-Options

If the value of this header is set to "DENY", some features of your application may not work properly. Particularly, the "DENY" value forbids a WebBrowser component as well as image processing and text size caching features, which all use an iframe as a result of generating the application.

This problem can be solved if you do not apply the "DENY" value, as presented below.

<meta http-equiv="X-Frame-Options" 
    content="… " />

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

RP

Written in

Description

72928

2017-6-15

HTTP header-related restrictions can be evaded by adding directives or by avoiding using the relevant value.

The following HTTP headers do not induce any restriction: X-Content-Type-Options, X-XSS-Protection and Strict-Transport-Security.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

To prevent cross-site scripting (XSS), you should control the text entered in the page or let the server verify the input and then receive it.

It is hard for Nexacro to overcome all types of security vulnerability. Basically, the platform considers data to be safe if it is transmitted from the server. Therefore, it is important for the server to produce reliable data.

Restriction on character length when receiving value from WebBrowser within onusernotify event

The onusernotify event is used to fetch a value from a web document loaded onto a WebBrowser component. In the NRE, however, the delivered value has limits in the length of characters.

The NRE version can process up to 512 characters maximum (256 characters in Korean and Japanese).

RP

Written in

Description

76512

2017-10-19

The NRE is designed to receive a value through the window.document.title property of Internet Explorer, which has its limits in character length.


2018-08-08

This restriction applies only to Windows, not to macOS, iOS and Android.

Virtual keyboard covers editable component when Fullscreen is set in Android

Setting Fullscreen in the AndroidManifest.xml file as presented below may cause a restriction: when you move focus to an editable component, a virtual keyboard can cover the component so that you cannot make an input.

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

RP

Written in

Description

77480

2017-12-13

FullScreen is not supported by a Nexacro-based app running in Android.

Components Being Displayed at the Top in Android OS

You cannot place other components on top of some components in Android NRE. Components displayed as pop-ups are also displayed under the corresponding components if they overlap the corresponding components.

The target components are as follows.

GoogleMap, WebBrowser

RP

Written in

Description

78897

2018-03-15

There is a restriction when running apps, including the WebBrowser component, on the Android operating system.

89336

2020-04-23

The same restriction was checked and corrected in the GoogleMap component.

Text is hidden partially when fittocontents is applied

Part of text in a Static will be hidden if you italicize the text or specify “italic” as a value of the font property with the usedecorate property set to “true”. This problem occurs when the fittocontents property is set to “width”. Nexacro calculates the width of text written in a component when fittocontents is applied. However, this restriction occurs because it is impossible to calculate the text width exactly if the text is italicized.

RP

Written in

Description

80378

2018-07-13

Part of a string will be hidden when fittocontents is applied because it is impossible to calculate the string’s width exactly if the string is italicized.

Strings appear garbled when a non-UTF-8 file is opened

If not encoded in the UTF-8 format, a string will come out garbled. For example, Korean strings will appear garbled if you open a file in Nexacro Studio with the file encoded in EUC-KR.

In Nexacro Studio, files are created with UTF-8 encoding and without a Byte Order Mark (BOM). It will take too long if an editor checks the encoding format of a file that does not have a BOM. For the sake of performance, therefore, Nexacro Studio presumes that files are encoded in the UTF-8 format.

RP

Written in

Description

80075

2018-12-14

Non-UTF-8 files are restricted for better performance.

MouseMove event stops in WebBrowser when content from different domain is linked

The MouseMove event will stop in a WebBrowser component when you try to resize a window. This problem occurs when you set the url property of the WebBrowser with content from a domain different from the current one.

In the below picture, for example, you can resize the window by dragging the position 1, the edge of the pop-up, with the left button of a mouse. However, you cannot conduct resizing from the position 2, the border between the WebBrowser and its content, because the MouseMove event stops.

RP

Written in

Description

83330

2019-01-15

Handling of the events generated from an IFRAME is impossible in a cross-domain environment due to the same-origin security policy.

Restriction related to values of system.osversion

The osversion property of the System object does not return the exact name of an operating system. osversion extracts its value from the navigator.useragent property. At this point, a string as a return value encompasses two or more OSes, making it impossible to identify the exact name of the relevant OS.

The below table presents the values that can be returned by the osversion property of the System.

Products of Windows Server can change later depending on their versions or Windows updates.

system.osversion

Indicated operating systems

Windows Server 2003 / Windows XP 64-bit

Windows XP x64, Windows Server 2003 R2, Windows Home Server

Windows Vista

Windows Vista, Windows Server 2008

Windows 7

Windows 7, Windows Server 2008 R2, Windows Home Server 2011

Windows 8

Windows 8, Windows Server 2012

Windows 8.1

Windows 8.1, Windows Server 2012 R2

Windows 10

Windows 10, Windows Server 2016, Windows Server 2019

RP

Written in

Description

83650

2019-02-08

This restriction occurs because navigator.userAgent cannot identify Windows Server products.

Value fails to be set even if its data type is appropriate after value of type property of ColumnInfo changes.

You will fail to set a value whose data type matches the value of the type property of the ColumnInfo object. This bug occurs after you change the value of type. When a Dataset is created, Nexacro defines a conversion function and links it to the type property of the ColumnInfo object. The foregoing problem occurs since the conversion function does not change even when the value of type changes.

For example, the below sample code causes such a bug. The below script is programmed to change the value of the type property of a ColumnInfo object from “BIGDECIMAL” to “STRING”. If the script is properly executed, the value "234%" should be set. However, the internal conversion function is still designed to process a BigDecimal object and thus produces an empty value.

var colInfo = this.Dataset00.getColumnInfo(0);
colInfo.set_type("STRING");
this.Dataset00.setColumn(2, 0, "234%");

Because fixing this bug solely may affect other functionalities of the Dataset object, it will be fixed after a consultation process. Therefore, this bug will be treated as a restriction until fixed.

RP

Written in

Description

83193

2019-02-14

Because fixing this bug solely may affect other functionalities in operation, this bug will be fixed after a consultation process and will be treated as a restriction until fixed.

Style editor fails to apply status to preview of component

If you choose a selector while editing a theme or XCSS file in the style editor of Nexacro Studio, a preview will be provided on the Component Preview pane. Such a preview reflects the status of the selector. However, the editor may fail to apply accurate statuses to the previews of some components like a Calendar and Grid, components that contain sub-controls to which the access is determined internally by the framework.

This bug does not cause any problem to the operation of the tool. Moreover, it is necessary to restructure the framework to fix this bug. Therefore, it has been decided that this restriction will remain.

In the below picture, for example, the style editor does not provide a preview where a component is under the “disabled” status. However, you can see an accurate preview if you set the enable property to “false” while working on the component in the design pane of Nexacro Studio and then launch the preview of your application.

RP

Written in

Description

85014

2019-06-05

Although this bug should be fixed, it has been decided that it will remain as a restriction because the attempt to fix it may have a large impact on the structure of the framework.

DB Files to Be Used in LiteDBConnection Not Being Deployed

When deploying the iOS operating system app, if the Update Type is set to "Server", then the DB file to be used in the LiteDBConnection object cannot be deployed directly. This is a restriction on the permission processing of the iOS operating system, and if you need to use the LiteDBConnection object, then you can directly create and use the DB file with the script as shown below.

/**
 * When executing the open method, set the LiteDBConnection.openReadWriteCreate option.
 */
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
	this.LiteDBConnection00.open("%USERAPP%t.s3db", LiteDBConnection.openReadWriteCreate);
}

/**
 * Create the DB file, create the data table while connected, and proceed with the necessary tasks.
 */
var CREATE_QUERY = "CREATE TABLE Persons ()";
this.LiteDBConnection00_onsuccess = function(obj:nexacro.LiteDBConnection,e:nexacro.LiteDBEventInfo)
{
    switch(e.reason)
    {
        case 5: // LiteDBConnection open()
            this.LiteDBStatement00.set_ldbconnection(this.LiteDBConnection00);
            this.LiteDBStatement00.executeUpdate(CREATE_QUERY);
            break;  
	}
}

RP

Written in

Description

90369

2020-10-08

This is a restriction on the app deployment method.

You can void the restriction by creating and accessing the DB file at a specific time without deploying the DB file directly.

Font with Same Name Beginning Not Being Applied

This occurs when the beginning of the font name is the same and when it is used at the same time.

If the font name applied to the first component created in Windows NRE includes the font name applied to the component created later as shown below, then there is a restriction that the first created component font is reflected in the component created later.

Arial Black
Arial

For example, if the font of the first Static component is "Arial Black" and the font of the second Button component is "Arial", then it is displayed as shown below. In the web browser, "Arial Black" and "Arial" are separated and processed, but in Windows NRE, it is only processed as "Arial Black".

This is a restriction that is affected by the order in which the Form is loaded.

RP

Written in

Description

91383

2021-02-02

As it can affect the operating functions, the correction has been postponed, and it is processed as a restriction.

Scroll action is restricted when the contenteditable property value in the HTML body tag is true.

If the contenteditable property is included in the body tag of the HTML content loaded by the WebBrowser component and the propety value is true, scrolling is disabled with the keypad displayed.

<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body contenteditable="true">

This is no issue when the same content is executed in a web browser, and the scrolling action is restricted only when executed in the Android operating system NRE.

This is a limitation caused by a structural issue of Nexacro NRE.

RP

Written in

Description

91925

2021-04-13

This is a limitation that occurs when running in the Android operating system NRE.

This error needs to be fixed, but it could affect the structure of the framework, so we have not fixed it.

Restrictions on emoji character output in Nexacro Studio

Some characters are garbled when using emoji characters in the editing window, properties window, and output window in Nexacro Studio. This issue is a restriction of the Windows OS program, and the same issue can be found in Notepad, a basic app of Windows.

Windows Notepad

Nexacro Studio > Property Window, Edit Window

It is displayed normally when the app is running. The format displayed on the screen may vary depending on the operating system, browser, and running device, and some characters may not be displayed.

WRE

RP

Written in

Description

92450

2021-06-17

This is a restriction of the Windows OS program.

Restriction on emoji character when running NRE

When running NRE, emoji characters and other characters are overlapped and displayed in the following cases.

Windows NRE

macOS NRE

RP

Written in

Description

92429

92428

92425

2021-06-29

This issue occurs because the version of Skia (an open source graphic library) used by Windows and macOS NRE does not reflect the emoji processing standard.

An issue in which when you double-tap the status bar area, it does not scroll to the top at once.

The iOS OS supports a feature that scrolls to the top at once by double-tapping the status bar area. However, when running Nexacro Platform WRE in the Safari browser, this feature is not supported for the following reasons.

RP

Written in

Description

93942

2022-02-10

We put the fix on hold and treated it as a limitation as it could affect the features.

Restrictions that change behavior when the alert and confirm methods are executed within the event handler functions

Depending on the value of the selectchangetype property of the Grid component, the order of events occurred when the mouse is clicked varies. If the selectchangetype property value is 'down', with the mouse click, events occur in the following order, starting with the Grid component's onlbuttondown event.

(1) Grid.onlbuttondown

(2) Dataset.canrowposchange

(3) Dataset.onrowposchanged

(4) Grid.oncellposchanged

(5) Grid.onselectchanged

(6) Grid.onlbuttonup

(7) Grid.oncellclick

When the alert and confirm methods in the first (onlbuttondown) to fifth (onselectchanged) event handler functions in the event list above are executed, there may be additional actions such as the user clicking the open window or pressing the Enter key to close the window, and this affects the order of the events.

If you need to execute the alert and confirm methods, change the order of event occurrence by setting the selectchangetype property value to 'up'. Changing the selectchangetype property value may affect other operations, so review it carefully before reflecting.

RP

Written in

Description

95162

2022-08-30

This is a restriction that affects the order in which a user action occurs in the middle of an event that needs to be handled internally.

An issue in which the value is different depending on the data sorting method when the getSum method of the Dataset object is executed.

When the keystring method is executed on the Dataset object to sort the data and the getSum method is executed, the data may be different from before arranging. This occurs when the column type is "STRING" and the data contains decimal values.

This happens because the floating-point operations in JavaScript may not guarantee exact results. Because numbers are expressed in binary floating-point format according to the IEEE 754 standard, sum values may be processed differently depending on how they are arranged (order of operations). Even if the same number is calculated, the resulting value is different depending on the order of operation, as in the following example.

var a = nexacro.toNumber("0.1");
var b = nexacro.toNumber("0.2");
var c = nexacro.toNumber("0.3");

trace(a + b + c); // 0.6000000000000001
trace(c + b + a); // 0.6

To compensate for this, set the column Type to "BIGDECIMAL" instead of "STRING" or use the toFixed method to limit the number of decimal places.

var a = nexacro.toNumber("0.1");
var b = nexacro.toNumber("0.2");
var c = nexacro.toNumber("0.3");

trace((a + b + c).toFixed(1)); // 0.6
trace((c + b + a).toFixed(1)); // 0.6

754-2019 - IEEE Standard for Floating-Point Arithmetic

https://ieeexplore.ieee.org/document/8766229

RP

Written in

Description

97121

2023-06-15

This happens because the JavaScript floating-point arithmetic does not guarantee exact results.

An issue in which a value that does not match the type is set in Const Column value.

Column values of Dataset objects are checked for validity according to type. If the Column type is "INT", setting a string value will process it as an invalid value.

trace(this.Dataset01.setColumn(0, 0, "TEST")); // false

If a numeric value is set as a string, the library converts it to a number internally and processes it as a valid value.

trace(this.Dataset01.setColumn(0, 0, "15")); // true

However, Const Column is not checked for validity based on type. If Const Column type is "INT" and a string value is set, the value is set without validation.

trace(this.Dataset01.setConstColumn(0, "TEST")); // true

The same applies if it is set directly in the Nexacro Studio Dataset editor. When a string value is entered into Const Column and Column whose type is "INT" and run the application, Const Column processes the string value as is, but since it is an invalid value in Column, the value entered in Nexacro Studio is invalidated.

Regardless of the Environment.datatyperule property value, the value of Const Column is not checked for validity.

When bound to a Grid component, the Const Column value that has been changed to a value that does not match the type may not be visible or may be displayed as "invalid value". This issue occurs because it is processed according to the displaytype property value of the Cell object of the Grid component, and it runs regardless of the value validity check of the Const Column.

For example, the displaytype property value of the Cell object is set to "normal", but since the Const Column type is "INT", it runs in the "number" format and the string entered without validation ("TEST") is not displayed. If the displaytype property value is changed to "text", the value will be displayed.

RP

Written in

Description

97217

2023-07-13

This error has not been fixed since existing user applications and data may be affected.

98955

2024-01-22

The description of the setColumn method action has been supplemented.