如何解决在拥有的网站上劫持或捕获 iFrame 表单提交?
我有一个包含多个页面的网站,其中嵌入了不同的 iframe 表单。 在网站上,我生成潜在客户。 但我也希望收到提交的内容,以跟进潜在客户和请求,例如CRM 和重新定位。
我有一个 HTTPS wordpress 网站,并且我嵌入了来自调用/执行 iframe 的合作伙伴 (https) 的 SCRIPT +(专用/个性化)JS。
<script>
var *** = new ***Embed('NAMEOFFORM','THANKYOUPAGE',true,false);
***.embed('***-form-container');
以及我嵌入的 JS 的小预览(或者只是可以在本地复制/调整主机?)
function ***Embed(discriminator,targetUrl,steps,regionFirst,postalCode) {
this.bindEvent = function (element,eventName,eventHandler) {
if (element.addEventListener) {
element.addEventListener(eventName,eventHandler,false);
} else if (element.attachEvent) {
element.attachEvent('on' + eventName,eventHandler);
}
};
var urlParams = new URLSearchParams(window.location.search);
var $scope = this;
this.element = null;
this.baseUrl = "https://***.nl";
this.guid = "UNIQUEID";
this.discriminator = discriminator;
this.targetUrl = targetUrl;
this.postalCode = postalCode ? postalCode : (urlParams.has('zip') ? urlParams.get('zip') : (urlParams.has('postcode') ? urlParams.get('postcode') : ''));
this.steps = steps === 'false' || steps === false ? 'false' : 'true';
this.regionFirst = regionFirst === 'true' || regionFirst === true ? 'true' : 'false';
this.initialChange = true;
this.offsetTop = 120;
this.setoffsetTop = function (offsetTop) {
this.offsetTop = parseInt(offsetTop);
}
this.embed = function (elementId) {
// Listen to message from child window
this.bindEvent(window,'message',this.listener);
this.element = elementId;
var el = document.getElementById(elementId);
el.style.transition = 'height 0.2s';
el.style.overflow = 'hidden';
var formUrl = this.baseUrl + "/embed/" + this.guid + "/" + this.discriminator + "/?url=" + this.targetUrl;
if (this.steps === 'false') {
formUrl += "&steps=" + this.steps;
}
if (this.postalCode !== '') {
formUrl += "&zip=" + this.postalCode;
}
if (this.regionFirst === 'true') {
formUrl += "®ion-first=" + this.regionFirst;
}
var frame = document.createElement("iframe");
frame.setAttribute("src",formUrl);
frame.setAttribute('id','92255f4f_frame');
frame.setAttribute('scrolling','no');
frame.style.width = "100%";
frame.style.height = "100%";
frame.style.border = "0px";
frame.style.overflow = 'hidden';
el.appendChild(frame);
};
this.listener = function (e) {
var event;
try {
event = JSON.parse(e.data);
} catch(e) {
return;
}
switch (event.type) {
case 'change':
if ($scope.initialChange) {
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
document.getElementById($scope.element).style.height = (event.height + 30) + 'px';
$scope.initialChange = false;
break;
case 'redirect':
window.location = event.value;
break;
case 'step':
if($scope.initialChange) {
return;
}
var el = document.getElementById($scope.element);
var y = el.getBoundingClientRect().top + window.pageYOffset - $scope.offsetTop;
window.scrollTo({top: y,behavior: 'smooth'});
break;
}
};
}
希望任何人都可以帮助我:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。