Javascript 如何在Docusign登录过程完成后重定向出Iframe
一旦用户在Docusign Iframe上完成签名,我想将他们重定向到我网站的另一部分,但我在退出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
<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>