0

假设我想扩展网站功能,但我不确定我在寻找什么样的解决方案。这不是我的网站,所以很明显我不能使用原始代码或数据库。

我想到的第一件事是仅适用于 html 代码的简单操作,例如使用不同的列进行排序。在这种情况下,我想我应该考虑创建浏览器插件,对吧?

但是,如果我想存储其他数据,然后将其显示在我的个人资料中怎么办?我不确定哪种解决方案可以让我在网站内显示我的 html 代码,然后例如将数据发送到我的数据库。不要误会我的意思——我知道如何在 ASP.NET 中或使用 Django 创建网站,但是当我想扩展不属于我的网站时,我不知道我在寻找什么技术。

4

1 回答 1

0

听起来您在询问来自 JavaScript 的客户端功能。有许多库可以让您以编程方式更改 HTML 功能,例如表格列排序和用户输入数据收集。

流行的框架和库包括 jQuery、angular、react、mithril 和较新的框架和库,如 vuejs 和 magjs。

有些需要特殊的模板语法或与 html 混合的行为,而另一些像 magjs 将 html 和 js 100% 分开。

这是一个表排序的 MagJS 示例:

JS:

var table = {}

table.controller = function(props) {
  this.list = [{
    name: "John",
    age: 21
  }, {
    name: "Mary",
    age: 25
  }, {
    name: "Bob",
    age: 47
  }]

}

table.view = function(state, props) {
  state.table = sorts(state.list)
}

function sorts(list) {

  return {

    _onclick: function(e) {

      var prop = e.target.getAttribute("data-sort-by")

      if (prop) {

        var first = list[0]

        list.sort(function(a, b) {
          return a[prop] > b[prop] ? 1 : a[prop] < b[prop] ? -1 : 0
        })

        if (first === list[0]) list.reverse()

      }
    }
  }
}

mag.module("sortable", table)

HTML:

<div id="sortable">
  <table>
    <tr>
      <th data-sort-by="name">Name</th>
      <th data-sort-by="age">Age</th>
    </tr>
    <tr class="list">
      <td class="name"></td>
      <td class="age"></td>
    </tr>
  </table>
</div>

这是工作示例的链接:http: //jsbin.com/raqeluluxe/1/edit ?html,js,output

希望有帮助!

于 2015-09-15T09:17:42.647 回答