2011-02-03 3 views
0

У меня есть html-шаблон (будет использоваться для создания шаблона электронной почты в приложении) на клиенте, загруженном из ajax, и сохраняется в переменной в javascript.настройка dojo innerHTML дает синтаксическую ошибку

Теперь, когда я пытаюсь установить мой:

div.innerHTML=var1; 

он бросает очень странную ошибку синтаксиса.

, когда я попробовал то же самое с додзё:

dojo.place(var1, div, "replace"); 

же ошибка!

В html нет скрипта, нет таблиц, но только divs и несколько карт событий, то есть onblur = "funcInactive (this)". Синтаксис прекрасен.

  • Каков оптимальный способ установки innerHTML DIV?

Благодаря

+0

Каково значение var1? Проблема, безусловно, здесь, или ваш div не ссылается на элемент – BiAiB

+0

и скопируйте здесь ошибку. говоря «ту же ошибку!» не даст нам никакой подсказки ... – BiAiB

ответ

0

Первый аргумент dojo.place может быть DIV или узел DOM, но innerHTML получает только строку. Aparentemente вам нужно добавить косую черту в var1, если содержит сценарии:

function addslashes(str) { 
    str=str.replace(/\\/g,'\\\\'); 
    str=str.replace(/\'/g,'\\\''); 
    str=str.replace(/\"/g,'\\"'); 
    str=str.replace(/\0/g,'\\0'); 
    return str; 
} 
+0

Спасибо за ваш ответ GCDO, однако с небольшой обратной отладкой я нашел проблему, и я поделюсь помощью сообщества. Редактировать: Answer: – Yellowcake

2

HTML, содержащиеся некоторые атрибуты, которые не являются действительными, то есть:

style="float: left" 

вместо

style="float: left;" 

и

onclick="javascript:this.onClick=''" 

вместо

onclick="javascript:this.onClick='';" 

Вывод:

Internet Explorer жалуется как синтаксические ошибки, когда innerHTML объекта устанавливается с недопустимой (выше примере) HTML. Safari/FF/Chrome работает нормально.