# firebox/2.1.14/media/public/js/expression.js

FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin &amp; Cart Abandonment, version 2.1.14. 3 lines.

- Page: https://pluginprobe.com/plugins/firebox/2.1.14/code/media/public/js/expression.js
- Raw: https://pluginprobe.com/plugins/firebox/2.1.14/raw/media/public/js/expression.js
- Modified: 2022-09-30T16:00:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/firebox/2.1.14/code/media/public/js/expression.js#L10-L20`.

```javascript
!function(window,document){"use strict";function run(){for(var _this=this,getContent=function(){return _this.el.querySelector(".fb-content").innerHTML},setContent=function(n){_this.el.querySelector(".fb-content").innerHTML=n},regex=/{fbExpr (.*?)}/gm,originalContent=getContent(),m,map={};null!==(m=regex.exec(originalContent));){m.index===regex.lastIndex&&regex.lastIndex++;var shortcode=m[0],command=m[1];if(!map.hasOwnProperty(shortcode)){var result=void 0;try{result=eval(command)}catch(n){result="&nbsp;",console.warn(n)}map[shortcode]=result}}var keys=Object.keys(map),newContent;0!==keys.length&&(newContent=originalContent,keys.forEach(function(n){newContent=newContent.replaceAll(n,map[n])}),originalContent!=newContent&&(setContent(newContent),this.on("afterClose",function(){setContent(originalContent)})))}FireBox.onReady(function(){var n=FireBox.getInstances();n.length&&n.forEach(function(n){n.on("open",function(){run.apply(n)})})})}(window,document);


```
