Добавленный HTML, который содержит JavaScript, не работает, как я могу заставить его работать?

Если у вас есть компиляция, вы можете получить IAssemblySymbol для каждой из внешних ссылок.

var assemblySymbol = (IAssemblySymbol)compilation.GetAssemblyOrModuleSymbol(externalAssemblyRef);

Затем, получив IAssemblySymbol, вы можете получить атрибуты уровня сборки, используя метод GetAttributes ().

var assemblyAttributes = assemblySymbol.GetAttributes();
8
задан fabrik 20 September 2018 в 05:45
поделиться

5 ответов

Я сделал бы это как это:

Сначала добавьте, что идентификатор приписывает Вашему HTML:

<td id="toggleDayCell">T</td>

<img src="img/cross.png" id="crossImg">

Затем имейте JavaScript, который работает на onload событии страницы и присоединений к событиям, которыми Вы интересуетесь.

В PrototypeJS это могло бы быть похожим на это:

Event.observe(window, 'load', function(){
  if( $('toggleDayCell') ) {
    Event.observe( $('toggleDayCell'), 'click', function(event){
      //do stuff here
    }
  }

  if( $('crossImg') ) {
    Event.observe( $('crossImg'), 'click', function(event) {
       //do stuff here
    }
  }
});

Используя что-то как Прототип (или jQuery) хорошо, потому что он заботится о перекрестной совместимости браузера.

4
ответ дан 5 December 2019 в 20:20
поделиться

Вы добавляете HTML через Ajax? Раз так у Вас будет к вручную оценке () JavaScript, который Вы возвращаете. Вы могли перенести ответ в отделение и сделать что-то вроде этого:

wrapper.getElementsByTagName("script")
// for script in wrapper...
eval(script.innerHTML)

Если бы Вы пользуетесь библиотекой как прототип, это было бы намного более просто, поскольку можно передать ответ на evalScripts () метод.

3
ответ дан 5 December 2019 в 20:20
поделиться

Добавьте HTML к документу, затем программно добавляют onclick событие к объекту.

Это первое, что пришло на ум, но... Я думаю, что можно сделать это этот путь:

IE:

Object.onclick = someFuntion

FF:

Object.addEventListener('click', someFunction);
1
ответ дан 5 December 2019 в 20:20
поделиться

Ajax имеет некоторые причуды... особенно с IE. Пример: Вы не можете использовать innerHTML свойство для вставления/обновления чего-либо в элемент таблицы (в IE). Лучше использовать функции DOM, чтобы вставить/обновить/удалить узлы элемента (или добавить обработчики событий). Можно использовать оценку () функция, упомянутая для выполнения динамично загруженного JavaScript, который изменяет документ с помощью Объектов DOM.

0
ответ дан 5 December 2019 в 20:20
поделиться

Необходимо использовать addEventListener('click', /*...*/) вместо того, чтобы установить onclick в innerHTML или что бы то ни было.

Вызовы IE addEventListener что-то еще полностью, таким образом, необходимо будет компенсировать это также.

(Редактирование: IE называет его attachEvent(). Надежда это несколько полезно.)

0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: