在拥有的网站上劫持或捕获 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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...