2009-02-06 6 views
9

Я хочу написать приложение, которое обнаруживает, когда страница загружается в браузере, тогда я должен иметь возможность вставлять содержимое поверх загруженной веб-страницы? Кто-нибудь с идеей о том, как это сделать?Как определить, когда загружена веб-страница?

Обратите внимание, что я должен быть в состоянии сделать это в любом браузере (Firefox/IE).

Какой язык я должен использовать, чтобы помочь мне сделать это?

Как определить это из внешнего приложения?

Как мне интегрировать это с браузером?

ответ

2

В Javascript у вас есть событие onload.

Edit: пример:

<html> 
    <head>...</head> 
    <body onload="doSomethingWhenPageIsLoaded();"> 
    ... 
    </body> 
</html> 
+1

-1 для добавления JavaScript в HTML. Лучше полностью вытеснить его. –

0

OnLoad событие JavaScript для тела делает то, что вы хотите.

<body onload="somefunc();"> 
2

Javascript используя onLoad() событие, будет ждать страницы, которая будет загружена перед выполнением.

<body onload="somecode();" > 

Если вы используете документ готовую функцию фреймворка Jquery в код будет загружаться, как только будет загружен DOM и до загрузки содержимого страницы:

$(document).ready(function() { 
    // jQuery code goes here 
}); 
+0

+1 для упоминания более чем одного способа – meouw

+0

Хороший ответ. Однако, если плакат не знает базового Javascript, я сомневаюсь, что он знает jQuery. – Zabbala

+0

Пожалуйста, не обращайтесь в W3Schools, вместо этого используйте MDN. – FluorescentGreen5

19

Вы должны использовать JavaScript, чтобы сделать это. Если вы не знаете, как использовать javascript, я бы рекомендовал прочитать через sometutorialsfirst.

Если у вас есть базовое понимание javascript, вы можете обнаружить, когда страница загрузилась с использованием события window.onload.

window.onload = function() { 
    addPageContents(); //example function call. 
} 

Edit: Если вы хотите добавить более чем одну функцию OnLoad, а не использовать библиотеку JavaScript, вы можете обернуть свой собственный OnLoad hanlder.

window.whenloaded = function(fn) { 
    if (window.onload) { 
    var old = window.onload; 
    window.onload = function() { 
     old(); 
     fn(); 
    } 
    } else { 
    window.onload = fn; 
    } 
} 
+8

+1, потому что вы не сказали «просто использовать jQuery» – meouw

+0

так же.Здесь выходят за рамки шутки. «Как назначить значение переменной?» «Использовать jQuery!» – bobince

+1

Почему бы не использовать собственный метод 'addEventListeners'? –

13

Лучше OnLoad, чтобы использовать функцию существующей структуры, поскольку OnLoad иногда не отвечает после всех ресурсов (изображения и т.д.) загружаются и не только страницы.

Например JQuery:

$(document).ready(function() { 
    // do stuff 
}) 
+2

+1, потому что вы объясните, что библиотеки имеют лучшую нагрузку – meouw

+1

+1, это в 10 раз лучше, чем событие onload, по конкретным причинам, которые вы упомянули. Слишком много людей используют onload, и это может не срабатывать в течение нескольких секунд после того, как страница будет отображаться пользователю. –

+0

Это также имеет то преимущество, что вы играете хорошо с существующими обработчиками событий. С другой стороны, window.onload будет переписывать их. –

15

Почему бы не использовать слушателей?

// Everything but IE 
window.addEventListener("load", function() { 
    // loaded 
}, false); 

// IE 
window.attachEvent("onload", function() { 
    // loaded 
}); 

Таким образом, вы можете добавить столько слушателей, сколько хотите, вы также можете отделить их! removeEventListener и detachEvent.

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