Я хочу получить размер экрана пользователя как одно из моих скрытых полей.Drupal: как добавить значение JavaScript в скрытую форму компонента
В чистом HTML, я могу получить значение ввода как JavaScript, например:
document.write(screen.width + " x " + screen.height)
Если установить [формат ввода] на странице в [полный HTML] или [код PHP], если я изложу значение компонент -
<script>document.write(screen.width + " x " + screen.height);</script>
теги SCRIPT опущены, и кавычки знаки становится ". Кажется, что поле [value] преобразуется в безопасные объекты HTML.
Есть ли способ добавить скрытый компонент формы со значением JavaScript, в веб-формы Drupal?
EDIT: Решено:
1 - Copy the original
...sites/all/modules/webform/webform-form.tpl.php
to
...sites/all/themes/myTheme/webform-form-myFormNodeId.tpl.php
2 - Add the following lines to webform-form-myFormNodeId.tpl.php
echo "<script>";
echo "document.getElementById('edit-submitted-userscreen').value = screen.width + 'x' + screen.height;";
echo "</script>";
3 - admin/settings/performance : [Clear cached data]
Edit: я могу добавить некоторые значения PHP в
%server[HTTP_USER_AGENT]
Как добавить значения JavaScript?
Edit 2: Я попытался изменить Узел [формат ввод] для [PHP кода] и следующей [форма компоненты] [значение], но все они не работал:
1 - drupal_add_js(screen.width + " x " + screen.height);
2 - <script>document.write(screen.width + " x " + screen.height);</script>
3 - <?php echo "<script language=\"javascript\">" . "document.write (screen.width + ' x ' + screen.height);" . "</script>"; ?>
4 - full html +
<script>
jQuery('#edit-submitted-userscreen').val(screen.width + 'x' + screen.height);
</script>
=> in View Page Source, I see:
<input type="hidden" name="submitted[userscreen]" id="edit-submitted-userscreen" value="
jQuery('#edit-submitted-userscreen').val(screen.width + 'x' + screen.height);
" />
[ SCRIPT теги заменяются NewLineChar ???]
=> поэтому, когда я заполнить форму, я получаю письмо с исходной строки:
userScreen: jQuery('#edit-submitted-userscreen').val(screen.width + 'x' + screen.height);
Второй вариант с помощью сценария, должен работать. –
со вторым вариантом, когда я «просматриваю исходный код», теги SCRIPT опущены, поэтому я получаю внутреннюю строку как значение [document.write (screen.width + «x» + screen.height);] – Atara
Попробуйте положить Формат ввода «Полный HTML», который должен работать. –