Use a hidden iframe to submit a form via Javascript for legacy applications
To prevent the page from being redirected or refreshed, we will create a javascript iframe inside which we will create the form:
methods: {
hiddenIframe(fields) {
let customHiddenIframeName = 'iframeId'
if (!document.getElementById(customHiddenIframeName)) {
let iFrame = document.createElement('iframe')
iFrame.id = customHiddenIframeName
iFrame.name = customHiddenIframeName
iFrame.src = 'about:blank'
iFrame.style.display = 'none'
document.body.appendChild(iFrame)
}
let form = document.createElement('form')
form.method = 'POST'
form.action =
'https://webto.salesforce.com/servlet/servlet.WebToCase?encoding=UTF-8'
form.setAttribute('target', customHiddenIframeName)
for (let fieldName in fields) {
let input = document.createElement('input')
input.name = fieldName
input.value = fields[fieldName]
input.id = fieldName
input.setAttribute('type', 'hidden')
form.appendChild(input)
}
document.body.appendChild(form)
form.submit()
}
},
created() {
this.hiddenIframe({
email: 'example@test.com',
name: 'John Doe',
subject: 'Form',
description: 'Form description'
})
}