Рейтинг:
2
Member 12637386
Я придумал другой способ. Вместо того чтобы сервер пытался вызвать javascript, я попросил javascript вызвать сервер, заставить сервер сделать это и передать результат обратно клиенту. Если результат положительный, я заставляю клиента вызвать javascript -
функция newList() {
$. get ("BufferDownLoad.aspx?type=newAddList", функция (результат) {
if (result = " файл удален") {
createMailList()
}
});
Хотя Спасибо за информацию, Ричард.
Рейтинг:
0
Richard Deeming
Ваш Page_Load
метод-это не "вызов" кода Javascript. Он регистрирует блок скрипта для отображения в HTML-ответе, который будет возвращен при загрузке страницы.
Когда вы нажимаете на ссылку на страницу, весь документ браузера заменяется HTML-кодом, возвращаемым вашей страницей. Это включает в себя загрузку и выполнение блоков скриптов в HTML
Когда вы используете метод jQuery.get() [^] чтобы запросить страницу, HTML-код загружается в переменную. Ни один из блоков скрипта в возвращаемом HTML-файле не будет выполнен.
Как вы решите эту проблему, зависит от того, что вы хотите сделать с возвращаемым HTML-кодом. Возможно, Вам повезет больше. элемент управления UpdatePanel[^] вместо.
Member 12637386
хмм...
Тогда можно ли было бы выполнить код в переменной, которую создает метод jQuery. get?
Спасибо
Richard Deeming
Возможно. Вам нужно будет добавить .done(function(theHtml){...})
обратный звонок на ваш $.get
вызовите, а затем извлеките и выполните сценарии. Этот ответ StackOverflow[^] есть способ сделать это.
Member 12637386
Ну, ты знаешь. Я думаю, что понимаю немного лучше. Если вся страница браузера будет заменена кодом javascript, это не сработает.
Что мне нужно сделать, так это когда клиент нажимает кнопку, сервер должен быть вызван и проверить, существует ли файл, и удалить его (у меня это записано). Затем оттуда нужно выполнить еще один javascript, который создает новый файл (у меня это тоже есть).
Member 12637386
продолжать... JavaScript вызывает сервер, сервер удаляет файл. Когда файл удаляется, клиент должен выполнить больше javascript без дополнительного пользовательского ввода.
Возможно, есть способ просто вернуться к исходному вызову javascript, когда сервер закончит удаление файла?
Richard Deeming
Похоже, что эти действия были бы лучше в качестве веб-сервиса или метода страницы:
Предоставление веб-служб клиентскому скрипту в ASP.NET Аякс[^]
Таким образом, метод может возвращать значение, указывающее на результат операции, и затем вы можете использовать .done(function(result){ ... })
обратный вызов для выполнения следующего этапа.
Member 12637386
Спасибо, Ричард. Я изучу ваши рекомендации. Возможно, я сбился с пути истинного.
Я собираюсь оставить это открытым еще немного на случай, если у кого-то еще есть комментарии.