【问题标题】:convert html to javascript [closed]将html转换为javascript [关闭]
【发布时间】:2011-04-01 00:28:28
【问题描述】:

有没有人知道是否有可以将html转换为javascript的工具。

例如:

<div>
</div>

会转换成

aDiv = document.createElement('div');
document.appendChild(aDiv);

我正在为 UI 组件制作一些 html 模板,并且正在使用 MooShell 进行原型设计。如果能够自动生成将构建组件的 html 的 javascript,那就太好了。

谢谢

【问题讨论】:

  • 有趣的问题。我认为 jQuery 必须有一个内置的解析引擎,因为它可以接受像$("&lt;div&gt;&lt;/div&gt;") 这样的命令来构建 DOM 对象。也许那里有其他信息。
  • 有趣的想法,但要注意重复的 DOM 事务,尤其是对于大型层次结构,可能会很昂贵。
  • 如果文件没有验证?无论如何,它可以通过暴力正则表达式“轻松”实现:)
  • 我刚看到BeautifulSoup,一个解析html的python东西,甚至格式很差
  • Pekka 提到了一个好点。您可以尝试深入研究 jQuery 源代码或挖掘有关 jQuery() 函数如何工作的信息。 @Konrad:我想可以采用类似于 jQuery 推荐的方法——通过在单个事务中构建复杂的层次结构,而不是一个一个地创建每个单独的元素。

标签: javascript html converter


【解决方案1】:

我建议看看 John Resig 的 pure javascript HTML parser。它由一个用于 HTML 的 SAX 样式解析器组成,并包括一个 XML 序列化器、一个 DOM 构建器和一个 DOM 创建器。每个都接受一个 HTML 字符串作为输入。

特别是,HTMLtoDOM 方法可以很容易地重新用于返回为任何输入的 HTML 字符串构建 DOM 所需的 javascript 字符串。

【讨论】:

    【解决方案2】:

    如果没有这样的工具(我认为确实如此),我会用同样的老方法解决这个问题:构建我自己的解析器。

    【讨论】:

      【解决方案3】:

      我看到其他人给了你很多关于如何做到这一点的提示,但我的两分钱在一件事上要记住。

      如果您使用客户端 Javascript 在 DOM 中插入/删除/修改元素,您会注意到使用 jQuery 等框架,您将无法调用和操作已添加的 DOM 元素苍蝇。

      解决此问题的最佳方法是使用 jQuery Live 插件进行查找。

      【讨论】:

        【解决方案4】:

        PrototypeJS 框架有一个 insert() 方法,可以解析 html 代码,所以你可以这样做:

        $$('body')[0].insert(stringWithYourHTMLCode);
        

        或者你为你的内容定义一个容器:

        $('containerId').insert(stringWithYourHTMLCode);
        

        【讨论】:

        • 他问的不是这个。
        【解决方案5】:

        我不确定您的情况,但如果您在 HTML 中有组件,它们应该有事件、ID 和绑定...所以我认为没有类似人类的天才脚本可以生成此代码。除此之外,您的问题非常具体。它可能在某个 IT 公司的某个地方,但它不像 jQuery 那样是 Web 开发人员每天使用的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-13
          • 2010-10-01
          • 2010-10-31
          • 2012-03-22
          • 2012-08-05
          • 2018-04-04
          相关资源
          最近更新 更多