2010-10-31 2 views
0

привет всем мне было интересно, если это возможно, чтобы отправить некоторые JavaScript-код в ответ контроллер смысла, который я хочу, чтобы вызвать JavaScript, но не из СПЯ (со стороны сервера) что-то вроде:Можно ли вызывать серверную часть javaScript?

var d = new Date(); 
var gmtHours = -d.getTimezoneOffset()/60; 
var tz=gmtHours; 
window.location="page?tz="+tz; 

Как вы думаете, ребята?

+1

Существует несколько способов. Точный ответ зависит от функционального требования. Пожалуйста, дополните. Что вы пытаетесь достичь/решить? – BalusC

+0

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

+0

пинг здесь ....? –

ответ

0

Есть две части ответа:

Исполнительные JavaScript, когда приходит ответ от сервера. Для этого вы можете wrtite с Javascript в HTML, что-то вроде

<script> 
    alert("This code just executed"); 
</script> 

обычно люди имеют что-то вроде

<script> 
    function init() { 
    document.getElementsByTagName('input')[0].focus();" 
    } 
    window.onload = init; 
</script> 

Он будет выполнять ваши функции, когда окна нагрузки.

Похоже, вы хотите узнать часовой пояс для пользователя, с которым вы показываете результаты. Как уже упоминалось, заголовки HTTP не имеют этой информации, поэтому вам необходимо отправить их или сохранить в качестве предпочтений пользователя. Если вы не хотите его хранить, вам нужно либо добавить его к каждой отправке или URL-адресу. Таким образом, у вас всегда будет часовой пояс на стороне сервера, и вам не нужно делать 2 поездки в оба конца.

Рабочий процесс может выглядеть следующим образом: 1. Пользователь отправляет форму или щелкает ссылку -> 2. Вы формируете результаты на стороне сервера -> 3. отображаете результаты на стороне клиента.

Похоже, вы хотите указать даты/время, относящиеся к часовому поясу. Если вы отправляете данные клиенту с помощью ajax, вы можете получить его в javascript до шага 3 и изменить его в соответствии с вашими предпочтениями. Если вы хотите сделать все форматирование на стороне сервера, вам необходимо отправить часовой пояс с исходным запросом на шаге 1. Вы можете добавить еще 2 шага 1.2, представить запрос часового пояса в ответ на действие пользователя. 1.3 Повторите отправку запроса с информацией о часовом поясе с помощью javascript. Это не оптимально, но может работать.

+0

Большое спасибо за полезное объяснение. –

0

Я все еще не очень понимаю вопрос. Но вы запрашиваете javavscript, когда ответ возвращается с сервера, чем вы можете использовать AJAX, и выполняете обработку в обратном вызове.

Если вы хотите получить доступ к часовому поясу, а не по-другому отправить его как часть параметра в начале в качестве параметра запроса.

+0

Я хочу получить пользовательский часовой пояс перед загрузкой определенной страницы (что означает запрос на получение страницы) –

+0

У нас была аналогичная проблема в одном из проектов. Полезная нагрузка Http (включая заголовки) по умолчанию не содержит информацию о часовом поясе. Поэтому мы отправили параметр часового пояса как часть запроса, когда нам это было нужно.Если у вас есть четкие точки входа в приложение, отправьте этот параметр как часть запроса с этих страниц. – lalit