Configure predefined browser tabs through layout assignments, with a separate address reference for each view. Add runtime content-selection scripting only when an event must choose content, and trace editable URLs from the input field through the application string to the browser.
For a fixed set of website tabs, configure the layouts and their browser controls before writing navigation scripts. Each tab needs assigned content, and each browser needs its own address. Changing an address at runtime is a separate requirement from selecting content at runtime. Keeping those decisions separate makes an industrial browser tab layout easier to configure and trace without borrowing script syntax from a different software release.
Decide what actually changes at runtime
Start with the required behavior, not a function name. Three tabs that must appear whenever a display opens are a configuration problem. Content that must be chosen in response to an event may need a runtime content-display action.
Editable website addresses do not necessarily change that decision. A predefined browser view can remain in its assigned tab while its address comes from an editable string.
| Required behavior | Starting approach | What changes |
|---|---|---|
| The same three website tabs appear whenever the display opens | Assign three browser layouts to the parent pane | Nothing about content placement |
| The tabs remain fixed, but their website addresses can change | Keep the assignments and bind each browser address to a separate string | The destination URL |
| An event determines which layout appears in a destination | Use the installed platform's documented runtime content-display mechanism | The content assignment |
| An action must bring an existing tab into view | Check the documented tab-selection behavior | The active tab, which may be separate from content assignment |
These behaviors can coexist. The important distinction is that changing a URL, adding content and selecting a tab are not automatically the same operation.
Separate the pane, the browser layout and the address
Use three layers to describe the configuration:
- Parent pane: holds the content items and provides the required tabbed arrangement.
- Child layout: contains the browser control for one website view.
- Browser address: identifies the destination that the control should load.
For an arrangement using a pane mode named Multiple, check that mode against the documentation for the installed release. Then inspect the content assigned to that pane. Selecting a multiple-content mode does not create the child layouts or populate them with browsers.
A clear starting structure is one parent pane with three assigned child layouts, each containing one browser control. Give the layouts descriptive names that match their purpose, such as production, maintenance and quality. Keep those names distinct from the address values so that changing a website does not obscure which configuration item you are inspecting.
This separation also establishes the diagnostic order. Missing tabs point first to pane configuration and content assignment. A visible tab containing an empty browser points further down the chain, toward the browser control, address or destination.
Give each browser an identifiable address source
For editable destinations, define one application string attribute per browser view, using the namespace or application-data mechanism supported by the installed software. Bind each browser's address property to its intended attribute.
The useful relationship is:
browser view → address reference → current string value
This is a tracing model, not executable syntax. Obtain the actual reference format from the installed editor and documentation. Use the editor's reference picker or completion feature where available, then read back the selected reference.
Keep a small mapping alongside the configuration:
| Tab purpose | Child layout | Address attribute | Editable input |
|---|---|---|---|
| Production | Production browser layout | Production address string | Production address field |
| Maintenance | Maintenance browser layout | Maintenance address string | Maintenance address field |
| Quality | Quality browser layout | Quality address string | Quality address field |
Distinct labels are not enough. Compare the complete configured references. Two different browser controls can accidentally reference the same attribute. Equally, three correctly separated attributes can contain the same URL.
An application string does not need to come from a controller merely because the display belongs to a control system. Use a controller or communication driver only when the application deliberately obtains the address from that source. Otherwise, an application-level value avoids an unnecessary dependency.
Trace address editing from input to browser
An editable field must write to the attribute that its browser reads. Inspect both ends rather than assuming that similar names indicate the same connection.
Trace the chain in this order:
- Read the attribute's current value.
- Inspect the input field's complete write reference.
- Enter an approved destination and commit the edit using the documented input behavior.
- Read the attribute again to confirm whether the value changed.
- Inspect the corresponding browser's address reference.
- Check how that browser applies an address change.
The last check matters. Depending on the control, a changed property may initiate navigation, require an explicit navigation action, or take effect when the view is opened again. Do not assume that a refresh action and an address assignment are interchangeable.
Keep the input labels visibly associated with their tabs. If address editing is unnecessary during normal use, restrict it through the application's documented permissions. Where supported, limiting destinations to approved addresses reduces accidental navigation. Do not put passwords or access tokens into editable URL fields.
Also decide whether edited addresses must survive an application restart. A writable runtime value is not necessarily persistent. Use the platform's documented storage or initialization mechanism rather than assuming an edited string becomes part of the saved project.
Use the symptom to choose the next check
Avoid changing layout structure, bindings and navigation actions together. Each symptom points to a different part of the configuration.
- A tab is missing: inspect the parent pane's content mode, assigned child layouts and any visibility conditions.
- The tab contains the wrong view: compare the assigned child layout with the intended tab-to-layout mapping.
- Every tab opens the same destination: compare both the browser references and the current address values.
- Editing one field changes another tab: look for a crossed input reference or a shared browser address reference.
- The string changes but the page does not: inspect the browser's dynamic binding and documented navigation behavior.
- The destination is correct but the page is empty: check access from the runtime device, authentication requirements and embedded-browser compatibility.
- The page loads but appears cropped: investigate the browser control's dimensions and page layout separately from URL binding.
For the last case, the checks in diagnosing kiosk browser sizing in an HMI window help separate viewport problems from content-loading problems.
A working page in a desktop browser does not establish that the embedded control supports the same features or has the same network access. Check from the actual runtime environment using approved diagnostic methods. Do not weaken authentication or browser security settings to make a page appear.
Add runtime content selection only when required
If an event genuinely needs to choose content, use the content-display reference for the installed software release. Confirm more than the function name:
- The accepted content identifier and whether it names a layout or another content asset.
- The destination pane reference and how its scope is resolved.
- The meaning and order of arguments.
- Whether the action adds, replaces or activates content.
- Whether repeated requests reuse an existing item or create another instance.
- How the action reports an invalid destination or unavailable content.
An example from another release may describe the right concept while using the wrong arguments or destination rules. Do not treat it as an executable specification.
Keep browser navigation separate from application navigation as well. A link inside a website might request a new window instead of loading within the current view. Handling web links in kiosk signage addresses that behavior; assigning another child layout is not a substitute for defining how those links should open.
Check the complete behavior, not just the first page
Acceptance should cover the display structure and the address path independently. Open the parent display and confirm that the expected tabs exist. Select each one and compare its content, configured reference and current destination with the mapping.
Then change one permitted address at a time. Confirm that only the intended view changes, that the browser applies the change as documented, and that reopening the view produces the intended result. Check restart behavior separately if address persistence is required.
Do not assume that separate browser controls provide separate login sessions, storage or histories. Those details depend on the embedded browser implementation. Tab changes may also preserve a view or recreate it. Confirm the behavior needed by the application rather than relying on the visual presence of three tabs.
The result should be easy to explain: the parent determines where content belongs, each child provides a browser view, and each address reference selects a destination. Add scripting only for behavior that those configured relationships cannot provide.
Questions
Does a fixed set of browser tabs require scripting?
Not necessarily. If the same tabs must appear whenever the display opens, assign the browser layouts through the supported layout configuration. Runtime scripting becomes relevant when an event must choose or place content. Selecting an existing tab may be a separate documented action.
Can browser addresses change while the tab layout stays fixed?
Yes, where the platform supports a dynamic browser address property. Keep each browser in its assigned layout and bind its address to an appropriate string attribute. Confirm how the control applies changed values, because some implementations require a navigation action or reopening the view.
Why do all browser tabs show the same website?
Check both the references and their current values. Different browser controls may accidentally share one address attribute, or separate attributes may contain identical URLs. Compare the complete input-to-attribute and browser-to-attribute mappings before changing the pane structure.
Will an edited browser address survive an application restart?
Not automatically. Editing a runtime string does not establish that the application saves it permanently. If persistence is required, configure the installed platform's documented storage and initialization behavior, then check the resulting value after restarting the application.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.