微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在拥有的网站上劫持或捕获 iFrame 表单提交?

如何解决在拥有的网站上劫持或捕获 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 += "&region-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 举报,一经查实,本站将立刻删除。