我在我们的网站上整合了Adobe EchoSign。但是,当我使用ajax调用EchoSign来显示小部件时,我在控制台中收到此错误:
Failed to execute 'write' on 'Document':
It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened.
widget?f=9K4JRD4I7H`2U3Q&token=SSGROXIB69QCKZBMSSEL6ARM&_=1406108929150:1
我花了2天时间才找到问题所在,但我可以搞清楚。 实际上当加载小部件时,它包含一个脚本和一个iframe,在我的情况下是加载脚本,之后无法执行此document.write(' iframe在这里')....
我正在使用wordpress,也许与wordpress存在冲突?
我打电话给ajax:
$('#my_id').html('').load('/my_EchoSign.php', function(){
});
这是php:
$file = EchoSign\Info\FileInfo::createFromFile($filepath);
$widget = new EchoSign\Info\WidgetCreationInfo('Test createPersonalEmbeddedWidget', $file);
$personalization = new EchoSign\Info\WidgetPersonalizationInfo($recipient_email);
try{
$result_sign = $api->createPersonalEmbeddedWidget($widget, $personalization);
}catch(Exception $e){
print '<h3>An exception occurred:</h3>';
var_dump($e);
}
echo $result_sign->{'embeddedWidgetCreationResult'}->javascript;
并且来自控制台的结果是,在ajax调用echosign文件并且我检查前端插入了什么后,我看到试图为小部件调用iframe的脚本并且即将出现该错误无法写入文档。
要正常工作,必须显示脚本和iframe,但在脚本停止并显示该错误后,请与我联系。
提前感谢任何帮助。
答案 0 :(得分:1)
我找到了解决方案,如果有人遇到与document.write类似的问题,你只需要将文件加载到iframe中,一切都会很好。
感谢。