Skip to content

Instantly share code, notes, and snippets.

@robisatthefunction
Created June 12, 2024 15:30
Show Gist options
  • Save robisatthefunction/b09b8060ffae49686bf447df11f8ac77 to your computer and use it in GitHub Desktop.
Save robisatthefunction/b09b8060ffae49686bf447df11f8ac77 to your computer and use it in GitHub Desktop.
{
"plugin_type": "widget",
"name": "Extension Template",
"edit_page_url": "https://www.optimizely.com/",
"form_schema": [
{
"default_value": "afterend",
"field_type": "dropdown",
"name": "position",
"label": "Position",
"options": {
"choices": [
{
"value": "beforebegin",
"label": "Before"
},
{
"value": "afterend",
"label": "After"
},
{
"value": "afterbegin",
"label": "At Beginning"
},
{
"value": "beforeend",
"label": "At End Of"
}
]
}
},
{
"default_value": ".alert > p",
"field_type": "selector",
"name": "selector",
"label": "Selector",
"options": null
},
{
"default_value": "Title Text",
"field_type": "text",
"name": "title",
"label": "title",
"options": null
}
],
"description": "",
"options": {
"html": "<div id=\"optimizely-extension-{{ widget.$instance }}\">\n {{ extension.title}}\n</div>",
"css": "",
"apply_js": "var utils = optimizely.get('utils');\n\nutils.waitForElement(extension.selector)\n .then(function(elem) {\n // Prepend the extension html to the body\n elem.insertAdjacentHTML(extension.position, extension.$html);\n });\n",
"undo_js": "var extensionElement = document.getElementById('optimizely-extension-' + extension.$instance);\nif (extensionElement) {\n extensionElement.parentElement.removeChild(extensionElement);\n}"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment