Я знаю, как плавно встраивать и заполнять форму, созданную в Cognito Forms, как это показано на странице их документации:
https://www.cognitoforms.com/support/65/data-integration/prefilling-a-form
Однако для страницы, которую я использую вSharePoint онлайн, у меня есть кнопка, которая загружает форму и отправляет переменные в форму через скрипт.Он отлично работает, если я публикую полный URL-адрес формы, но я не могу заставить работать полностью встроенную форму.Вот мой текущий скрипт страницы:
<script src="https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js" type="text/javascript"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="SPServices/jquery.SPServices.js" type="text/javascript"></script>
<script src="SPServices/jquery.SPServices.min.js" type="text/javascript">
<script type="text/javascript" language="javascript">
var currentUserName = _spPageContextInfo.userDisplayName;
var currentUser = _spPageContextInfo.userLoginName;
var currentEmail = _spPageContextInfo.userEmail;
var myCode = Math.floor(100000 + Math.random() * 900000);
function iframeDidLoad() {}
function newSite() {
document.getElementById('myIframe').src = ["https://www.cognitoforms.com/NorthArkansasCollege1/CarReservation?entry={%22Employee%22:%22"+currentUserName+"%22,%22Email%22:%22"+currentEmail+"%22,%22Code%22:%22"+myCode+"%22}"];
}
</script>
<p><strong>Hello, <script type="text/javascript">document.write(currentUserName)</script></strong></p>
<input type="button" value="Make Reservation" onClick="newSite()" /><br> <br>
<iframe id="myIframe" width="1000" height="1250" frameborder="0" allowfullscreen src="about:blank" onLoad="iframeDidLoad();"></iframe>
Как мне встроить iframe одновременно с вводом этой переменной?Я попытался изменить функцию, как это (ниже), но это привело к тому, что страница не загружалась.
function newSite() {
document.getElementById('myIframe').src = ['https://services.cognitoforms.com/f/EQ4dNY8tzU2RWJKrtsZ7sA'];
Cognito.load('forms', {id:'305', entry: {'"Employee":"'+currentUserName+'","Email":"'+currentEmail+'","Code":"'+myCode+'"'}});
}
Я также попробовал это (ниже) с такой же неудачной загрузкой.
function newSite() {
document.getElementById('myIframe').src = ["https://services.cognitoforms.com/f/EQ4dNY8tzU2RWJKrtsZ7sA?id=305&entry={%22Employee%22:%22"+currentUserName+"%22,%22Email%22:%22"+currentEmail+"%22,%22Code%22:%22"+myCode+"%22}"];
}
Есть мысли?Кстати, я пользователь JavaScript начального уровня, поэтому я могу упустить что-то очевидное.
Я также попытался загрузить весь prefill встраивание iframe через .innerHTML:
<script type="text/javascript" language="javascript">
var currentUserName = _spPageContextInfo.userDisplayName;
var currentUser = _spPageContextInfo.userLoginName;
var currentEmail = _spPageContextInfo.userEmail;
var myCode = Math.floor(100000 + Math.random() * 900000);
function iframeDidLoad() {}
function loadPrefill() {
document.getElementById('demo').innerHTML = " <br><iframe src='https://services.cognitoforms.com/f/EQ4dNY8tzU2RWJKrtsZ7sA?id=305' style='position:relative;width:1px;min-width:100%;*width:100%;' frameborder='0' scrolling='yes' seamless='seamless' height='1082' width='100%'></iframe><script src='https://services.cognitoforms.com/scripts/embed.js'><\/script><script>Cognito.prefill({'Employee':'"+currentUserName+"','Email':'"+currentEmail+"','Code':'"+myCode+"'});<\/script></div>";
}
</script>
<p><strong>Hello, <script type="text/javascript">document.write(currentUserName)</script></strong></p>
К сожалению, это только загрузило формуно не выполнял предварительное заполнение, как указано на странице документации Cognito Forms.