Javascript 如何在Docusign登录过程完成后重定向出Iframe

Javascript 如何在Docusign登录过程完成后重定向出Iframe,javascript,html,iframe,docusignapi,Javascript,Html,Iframe,Docusignapi,一旦用户在Docusign Iframe上完成签名,我想将他们重定向到我网站的另一部分,但我在退出Iframe时遇到了麻烦。 我知道这里已经有人问过这个问题,但没有回答: 但用户提供的代码在我的情况下不起作用,新页面甚至无法加载: <iframe id ="docusignFrame" name="docusignFrame" th:src="${docusignURL}" width="100%" height="900" onLoad="(this.contentWindow.loca

一旦用户在Docusign Iframe上完成签名,我想将他们重定向到我网站的另一部分,但我在退出Iframe时遇到了麻烦。 我知道这里已经有人问过这个问题,但没有回答:

但用户提供的代码在我的情况下不起作用,新页面甚至无法加载:

<iframe id ="docusignFrame" name="docusignFrame" th:src="${docusignURL}" width="100%" height="900" onLoad="(this.contentWindow.location != '' ? DocusignCompleted(this.contentWindow.location) : void(0));"></iframe>
<script>
function DocusignCompleted(url) {
    $("#docusignFrame").hide();
}
</script>
HTML代码:

<iframe src="<?=$result?>" width="1000" height="1000"></iframe>

在我的例子中,我找到了解决方案,它是检查Iframe的
onload
,然后在
Javascript
中检查Docusign的
GET[“event”]
是否存在

在这种情况下,如果签名过程失败,它仍将更改页面,但您可以将这部分代码更改为所需的事件

<html>
    <head>
        <script>
            function handleIframe(str){
                url = new String(str);
                if (url.indexOf('?event=signing_complete') > 0) {
                    window.top.location.href = "signing_complete.php";
                }
            }
        </script>
    </head>
    <body>
        <iframe width="1000"
                height="1000"
                onload="handleIframe(this.contentWindow.location)"
                frameborder="0"
                src="<?=$result?>">
        </iframe>
    </body>
</html>

功能手柄(str){
url=新字符串(str);
if(url.indexOf('?event=signing_complete')>0){
window.top.location.href=“signing_complete.php”;
}
}

我建议不要在签字仪式上使用iFrame:

  • 除非iFrame占用了100%的屏幕高度和宽度,否则它将在移动设备上造成签名混乱。(提示:人们喜欢在移动设备上登录。)
  • iFrame不需要用于维护应用程序的状态:使用框架的会话库进行维护
  • iFrame使得使用DocuSign更加困难(正如您所经历的那样)
  • 结论:简单地重定向到DocuSign签名仪式会更好、更容易。DocuSign将在签名完成后将签名者的浏览器重定向回您

    补充 Re:框架的会话库 会话库使您的应用程序能够在会话期间轻松维护特定使用的状态

    例如,有关PHP,请参见

    回复:不建议使用iFrame: 请参阅文档签名文档:

    注意:请将客户端重定向到URL。不应使用iFrame,尤其是当收件人使用手机或平板电脑时


    另外,请参阅eg-03系列多语言示例。它们都会重定向浏览器。参见

    您好,感谢您对Iframe与Docusign一起使用的评论,您能解释一下使用框架的会话库是什么意思吗。我是API的新手。你能给我链接一下它在哪里解释了如何做你在Docusign文档中所说的吗?你不推荐我能理解的Iframe,但在Docusign文档中的一些地方,嵌入式签名只解释了Iframe,比如sign,我们的soap文档非常古老。我们继续支持soap,但是文档并没有更新很多。
    <html>
        <head>
            <script>
                function handleIframe(str){
                    url = new String(str);
                    if (url.indexOf('?event=signing_complete') > 0) {
                        window.top.location.href = "signing_complete.php";
                    }
                }
            </script>
        </head>
        <body>
            <iframe width="1000"
                    height="1000"
                    onload="handleIframe(this.contentWindow.location)"
                    frameborder="0"
                    src="<?=$result?>">
            </iframe>
        </body>
    </html>