2010-10-22 3 views
5

У меня есть изображение, содержимое которого я хочу видеть всегда, независимо от разрешения пользователя. Поэтому я хочу иметь возможность определить, что такое разрешение, и установить соответствующий фоновый файл изображения до загрузки страницы, с самого начала. Возможно ли это как-то?Выполнение функции JavaScript перед загрузкой страницы (установка фона соответствующего размера)

+0

+1 за идею и задающую вопрос. –

+0

Что делать, если пользователь изменяет размер своего окна? – some

+0

Ничего. Фон должен соответствовать разрешению экрана, а не текущему размеру окна. – kremuwa

ответ

9

Самый ранний момент, когда вы можете запустить функцию Javascript с доступом к DOM (без ожидания загрузки страницы), разместив тег <script> сразу после открытия тега <body>.

Сценарии внутри <head> будут выполняться до этого, но не будет доступа к элементам на странице.

Попробуйте этот код

<body> 
    <script type="text/javascript"> 
     alert("Some elements shouldn't even be visible when this shows"); 
    </script> 
    ... rest of the page 
</body> 

Смотрите эту example с некоторыми гангста Lipsum текста.

+0

Действительно? Итак, когда выполняются скрипты в голове? – some

+0

@ some: Хороший вопрос. Он запускается перед тегом '', но нет доступа к элементам на странице. Я должен это уточнить. – Marko

+0

У вас есть только доступ к элементам, которые были объявлены перед тегом script, потому что остальная часть страницы еще не была проанализирована. Вот почему люди ждут загрузки DOM, прежде чем они начнут ее трогать. Достойная структура упрощает присоединение функции к загруженному DOM-событию кросс-браузерным способом. – some

0

С использованием инфраструктуры JavaScript, например MooTools, вы можете использовать событие DomReady вместо onLoad (которое ожидает загрузки всех элементов изображения), вы можете запустить событие при загрузке страницы.

В качестве альтернативы с помощью CSS вы можете установить абсолютный верхний левый и ширину: 100%, чтобы выиграть день. : O

+0

Я предпочитаю не использовать внешний код, если я могу легко это сделать без него :). Что касается второй части вашего ответа - я не хочу, чтобы она изменялась с помощью окна, но чтобы настроить ширину экрана. Но все равно спасибо :). – kremuwa

0

Я понимаю, что вы конкретно задаете вопрос о JavaScript, но есть довольно decent technique for doing this with CSS (и, возможно, небольшой JavaScript), описанный на сайте CSS Tricks.

+0

Я не хочу, чтобы он изменялся в зависимости от окна, но чтобы настроить ширину экрана. Спасибо в любом случае :) – kremuwa

+0

Техника, с которой я связан, использует CSS для масштабирования изображения, чтобы он соответствовал окну просмотра браузера. Он не изменяет размер окна. – stevelove

+0

Я знаю - «Я не хочу изменять размер окна» - это означает: «Я не хочу масштабировать фон, когда окно (и окно просмотра браузера) меняет свой размер». Я хочу настроить его только на ширину экрана. – kremuwa

1

Проверить эту статью на получение разрешения экрана в Javascript: http://andylangton.co.uk/articles/javascript/browser-screen-resolution/

теги сценария выполнить инлайн, если вы что-нибудь особенное, чтобы отложить их (и откладывая выполнение сценария не поддерживается во всех браузерах) не делать. Это означает, что тег скрипта, вложенный только внутри тега тела, будет выполняться до того, как остальная часть тела загрузится. Возможно, ваш скрипт обнаружил разрешение экрана и установил фоновое изображение для тела прямо там.

+0

Я знаю, как получить разрешение экрана, спасибо :). Я хотел бы принять оба ваших ответа, но поскольку это невозможно, а ответ Марко более сложный, я должен принять решение. Но еще раз спасибо, и у вас есть точка для полезного ответа. – kremuwa

+0

без проблем. Благодаря :) – Gopherkhan

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