2014-10-24 4 views

ответ

2

К сожалению, eww не появляется вызывать крюк после завершения рендеринга страницы, так что вам нужно подключить в eww на более низком уровне:

(defun eww-render-and-do-stuff (status url &optional point) 
    (eww-render status url point) 
    (do-stuff)) 

(let ((url "http://emacs.stackexchange.com")) 
    (url-retrieve url 'eww-render-and-do-stuff (list url))) 
+0

Спасибо за ваш ответ. Меня устраивает. Но у меня есть некоторые вопросы о вашем ответе. Я попытался заменить «eww-render-and-do-stuff» на «eww-render» и поместил реальный код для заполнения после «url-retrieve», он не работает должным образом. Итак, мой вопрос заключается в том, что отличает использование функции eww-render-and-do-stuff и встроенного кода напрямую? –

+0

См. 'C-h f url-retrieve' и аргумент' CALLBACK'. – phils

+0

@EnzoChi, 'url-retrieve' работает асинхронно - он может вернуться до того, как страница закончит загрузку, и пусть загрузка будет продолжена в фоновом режиме. Если вы поместите 'do-stuff' после' url-retrieve', он, вероятно, запустится до завершения загрузки и, из-за ограничений в движке Emacs Lisp, вероятно, предотвратит завершение загрузки. – jch

Смежные вопросы