Превратите содержимое файла .htc в «обычный» Javascript - PullRequest
1 голос
/ 05 ноября 2010

У меня есть файл .htc, поведение которого привязано к div на моей странице (div # test). Внутри файла есть тег вверху, задающий поведение:

<PUBLIC:ATTACH EVENT="ondocumentready" FOR="element" ONEVENT="function1()" />

И по всему файлу есть вызовы 'element', и this.element, который, как я полагаю, ссылается на этот тест div #.

Если бы я хотел взять JS из этого файла, можно ли было бы поместить его на главную страницу .html? Я пытался вызывать функцию при загрузке документа, но не могу получить правильный синтаксис.

Я пытаюсь:

document.getElementById.('test').attachEvent(onlonad, function1());

Буду признателен за любые указания, если я делаю что-то не так, или если кто-то может сказать мне, почему делать это вообще было бы плохой идеей! =)

1 Ответ

0 голосов
/ 05 ноября 2010

У вас точка в неправильном месте, вы передаете неопределенную переменную в функцию и вместо ее передачи вы вызываете function1():

document.getElementById.('test').attachEvent(onlonad,  function1());
//                     ^ this                ^   ^  ^ and these ^^

Правильный синтаксис будет

document.getElementById('test').attachEvent("onload", function1);

Также обратите внимание, что только несколько элементов поддерживают событие onload - изображения, сценарии и тело (которое отображается в window.onload).

Если вы хотите делать вызовы при загрузке документа, то это неудобно в IE, потому что он не поддерживает событие готовности документа, которое поддерживают другие браузеры. Есть способы обойти это, или вы можете использовать событие window.onload:

window.onload = function () {
    // Code to execute when the window is loaded here 
}
...