У меня был тесно связанный вопрос, я сам нашел ответ прямо перед тем, как отправлять сообщения в SO. Поскольку люди, у которых есть мой вопрос, скорее всего, окажутся здесь (результат номер один в Google по запросу "jquery force document ready"), позвольте мне дать дополнительную информацию.
Моя проблема в том, что я динамически генерирую некоторый HTML (используя XSLT), который иногда будет сохранен на потом, но в других случаях я просто хочу открыть новое окно с новым HTML, чтобы пользователь мог его предварительно просмотреть. Вот так:
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
Проблема в том, что сгенерированный HTML использует jQuery, а событие domready никогда не вызывалось. Из ответа Дэвида мне следовало сразу понять, как это сделать, но трюк на мгновение ускользнул от меня. Это:
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
mywindow.jQuery.ready();
Обратите внимание, что в этом случае страница, на которой это делается, даже не использует jQuery ... только сгенерированный HTML. Неважно, вы генерируете событие jQuery для другого документа.