【问题标题】:setting dojo innerHTML gives syntax error设置 dojo innerHTML 给出语法错误
【发布时间】:2011-02-03 14:51:57
【问题描述】:

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

现在当我尝试设置我的:

div.innerHTML=var1;

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

当我尝试使用 dojo 时:

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

同样的错误!

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

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

谢谢

【问题讨论】:

  • var1 的值是多少?问题肯定在这里,或者您的 div 没有引用元素
  • 请在此处复制错误。说“同样的错误!”不会给我们任何线索...

标签: javascript html dojo innerhtml


【解决方案1】:

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

style="float: left"

而不是

style="float: left;"

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

而不是

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

结论:

当对象的 innerHTML 设置为无效(上例)html 时,Internet Explorer 会抱怨它是语法错误。 Safari/FF/Chrome 工作正常。

【讨论】:

    【解决方案2】:

    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;
    }
    

    【讨论】:

    • 感谢您的回答 GCDO,但是通过很少的反向调试我发现了问题,我将分享以寻求社区的帮助。编辑:答案:
    猜你喜欢
    • 2015-04-23
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多