|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Апплет не может обработать запросы от кода JavaScript в веб-странице, пока апплет не был инициализирован. Звонок в метод апплета или доступ к переменной апплета от кода JavaScript будет блокирован до апплета init() метод полон, или апплет сначала вызывает код JavaScript от веб-страницы, в которой это развертывается. Поскольку реализация JavaScript является однопоточной во многих браузерах, веб-страница, может казаться, замораживается во время запуска апплета.
Начинаясь в JDK 7 выпусков, можно проверить status переменная апплета, в то время как это загружается, чтобы определить, готов ли апплет обработать запросы от кода JavaScript. Можно также зарегистрировать обработчики событий, которые будут автоматически вызваны во время различных этапов инициализации апплета. Чтобы усилить эту функциональность, апплет должен быть развернут с java_status_events набор параметра к "true".
В примере Состояния и Обработчика событий, кодовые регистры JavaScript onLoad обработчик с апплетом. onLoad обработчик автоматически вызывается программным обеспечением Плагина Java, когда апплет был инициализирован. onLoad обработчик вызывает другие методы апплета, чтобы потянуть график на веб-странице. init метод class спит в течение двух секунд, чтобы моделировать долгий период инициализации апплета.DrawingApplet
Следующие шаги описывают, как зарегистрировать обработчики событий и проверить состояние апплета. См. Состояние Апплета и Обработчики событий для полного списка значений состояния апплета и событий апплета, для которых могут быть зарегистрированы обработчики событий.
registerAppletStateHandler функция, которая регистрируется onLoad обработчик событий, если апплет уже не загрузился.
<script>
<!-- ... -->
var READY = 2;
function registerAppletStateHandler() {
// register onLoad handler if applet has
// not loaded yet
if (drawApplet.status < READY) {
drawApplet.onLoad = onLoadHandler;
} else if (drawApplet.status >= READY) {
// applet has already loaded or there
// was an error
document.getElementById("mydiv").innerHTML =
"Applet event handler not registered because applet status is: "
+ drawApplet.status;
}
}
function onLoadHandler() {
// event handler for ready state
document.getElementById("mydiv").innerHTML =
"Applet has loaded";
draw();
}
<!-- ... -->
</script>
registerAppletStateHandler функция в body onload метод тега. Это гарантирует, что HTML-тэг для апплета был создан в Объектной модели документа (ДОМ) дерево веб-страницы прежде, чем обработчики событий апплета будут зарегистрированы. <body onload="registerAppletStateHandler()">
java_status_events набор параметра к "true".
<script src=
"http://www.java.com/js/deployJava.js"></script>
<script>
// set java_status_events parameter to true
var attributes = { id:'drawApplet',
code:'DrawingApplet.class',
archive: 'applet_StatusAndCallback.jar',
width:600, height:400} ;
var parameters = {java_status_events: 'true'} ;
deployJava.runApplet(attributes, parameters, '1.7');
</script>
Открытый
Если Вы не видите, что апплет работает, Вы должны установить, по крайней мере, выпусков.
Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.