设置dojo innerHTML会出现语法错误

时间:2011-02-03 14:51:58

标签: javascript html dojo innerhtml

我在从ajax下载的客户端有一个html模板(将用于在app中设计电子邮件模板),并存储在javascript中的变量中。

现在,当我尝试设置我的时候:

div.innerHTML=var1;

它会抛出一个非常奇怪的语法错误。

当我尝试使用dojo时:

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

同样的错误!

html中没有任何脚本,没有表格,只有div和一些事件映射,即onblur =“funcInactive(this)”。语法很好。

  • 设置DIV的innerHTML的最佳方法是什么?

由于

2 个答案:

答案 0 :(得分:2)

HTML包含一些无效的属性,即:

style="float: left"

而不是

style="float: left;"

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

而不是

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

结论:

当对象的innerHTML设置为无效(上例)html时,Internet Explorer会将其作为语法错误提出申诉。 Safari / FF / Chrome工作正常。

答案 1 :(得分:0)

dojo.place的第一个参数可以是div或DOM节点,但innerHTML只接收一个字符串。 如果包含脚本,则需要在var1中添加斜杠:

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