Some test text!
Web / Guides / Popup
The popups in WebViewer UI are small floating menus.
In WebViewer UI, there are 4 types of popups:
There are a number of ways you may want to customize Popups. To name a few:
The WebViewer UI provides APIS to easily handle each of these cases and more.
The unique identifier of the items in the popup can be retrieved using the getItems API.
It returns an array of objects where each object contains a key that denotes the dataElement.
Adding items can be done using the add API.
The type of items to add can be found in the header item API .
To add new items at beginning of the popup, do not provide a second parameter to the add function.
WebViewer(...)
.then(function(instance) {
instance.UI.contextMenuPopup.add({
type: 'actionButton',
label: 'some-label',
onClick: () => console.log('clicked'),
});
});
There are 2 ways to do this.
Option one:
Option two:
WebViewer(...)
.then(function(instance) {
// insert after the last element in the popup
const contextMenuItems = instance.UI.contextMenuPopup.getItems();
const lastItem = contextMenuItems[contextMenuItems.length - 1];
instance.UI.contextMenuPopup.add({
type: 'actionButton',
label: 'Get selected text',
onClick: () => console.log(instance.Core.documentViewer.getSelectedText()),
},
lastItem.dataElement);
});
Existing items can be modified using updateElements.
The items in the popup can be replaced using update.
WebViewer(...)
.then(function(instance) {
// Updating existing sticky tool button in context menu popup with new label and new on click handler
instance.UI.updateElement("stickyToolButton", {label: 'new-label', onClick: () => console.log('clicked')});
});
WebViewer(...)
.then(function(instance) {
// replace existing items with a new array of items
instance.UI.contextMenuPopup.update([
{
type: 'actionButton',
label: '1',
onClick: () => console.log('clicked'),
},
{
type: 'actionButton',
label: '2',
onClick: () => console.log('clicked'),
},
]);
});
This can be done by:
WebViewer(...)
.then(function(instance) {
const contextMenuItems = instance.UI.contextMenuPopup.getItems();
const newArray = contextMenuItems.reverse();
instance.UI.contextMenuPopup.update(newArray);
});
Items in the popup can be deleted using the using disableElements .
WebViewer(...)
.then(function(instance) {
instance.UI.setAnnotationContentOverlayHandler(annotation => {
const div = document.createElement('div');
div.appendChild(document.createTextNode(`Created by: ${annotation.Author}`));
div.appendChild(document.createElement('br'));
div.appendChild(document.createTextNode(`Created on ${annotation.DateCreated}`));
return div;
});
});
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales