Как обнаружить / отслеживать постбэк в javascript?

Поскольку этот вопрос изначально был задан, библиотека Гуавы Google теперь включает мощный и гибкий кеш. Я бы рекомендовал использовать это.

23
задан o.k.w 7 December 2009 в 03:27
поделиться

5 ответов

ASPX:

<input type="hidden" id="_ispostback" value="<%=Page.IsPostBack.ToString()%>" />

Клиентский скрипт:

function isPostBack() { //function to check if page is a postback-ed one
  return document.getElementById('_ispostback').value == 'True';
}

PS: Я не тестировал его, но я делал нечто подобное раньше, и он работает.

39
ответ дан 28 November 2019 в 22:20
поделиться

Это - простой способ JS определить состояние IsPostBack, что я просто получил работу в Теле моей страницы ASPX; должен был вызвать PostBack во время PageLoad для проекта.

    <script type="text/javascript">
        if ('False' === '<%= Page.IsPostBack.ToString()%>') 
        {
            __doPostBack();
        }
    </script>
0
ответ дан 28 November 2019 в 22:20
поделиться

Вы можете отслеживать обратную передачу только в том случае, если вы используете запросы AJAX или имеете какое-то скрытое поле, которое javascript читает при загрузке страницы. В противном случае страница создается заново и все данные POST теряются; как и следовало ожидать и надеяться.

0
ответ дан 28 November 2019 в 22:20
поделиться

Если вы хотите проверить, будет ли текущая страница обратной передачей, если пользователь нажимает кнопку отправки, вы можете проверить наличие ViewState:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="xxxxx" />

Вы можете использовать что-то вроде document.getElementById ("__ VIEWSTATE") или эквивалент jQuery.

Однако, если вы хотите узнать, была ли текущая страница сгенерирована в ответ на обратную передачу, вам необходимо вставить эти данные на страницу сначала на стороне сервера.

Например:

function isPostBack() {
  return <%= Page.IsPostBack %>;
}
9
ответ дан 28 November 2019 в 22:20
поделиться

См. следующее:

<script type="text/javascript">

function invokeMeMaster() {

var chkPostBack = '<%= Page.IsPostBack ? "true" : "false" %>';

if (chkPostBack == 'false') {

alert('Only the first time');

}
}



window.onload = function() { invokeMeMaster(); };

</script>
]
4
ответ дан 28 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: