我管理学术软件项目的系统,以及其他项目,允许项目提供与Trac bug跟踪器/ wiki /源浏览器实例集成的网页。这个想法是,用户可以自由设计他们喜欢的主要页面(他们真的很喜欢这样),但是有一些便利/品牌特性(如常用的导航元素)和顶部的(不显眼的)链接栏,可以链接回主页和其他托管项目。为了获得更好的单词,我使用“包装”来描述将nav元素和链接栏插入到文档中。我知道,我知道:超载的术语。对不起,如果你期待一个回车问题;)AJAX安全的方式来后处理/“包装”任意网页?
多年来,这个系统已经很好地工作,由用户定义的Apache 2 OutputFilter实现的文本/ HTML的“包装”:随着HTML流离开服务器,我将输入HTML解析为一个DOM,如果需要将树标准化一点,然后插入适当的额外元素。有点吝啬,但我能找到的最好的方式,到目前为止它运作良好。但是,我现在想将Trac系统升级到0.11,其中一些整洁的AJAX用于懒惰地呈现目录树而不重新加载:效果是AJAX HTML流也被Apache滤镜修改,因此每次打开目录时都会添加新的“顶级酒吧”和导航家具。这显然非常糟糕,我宁愿我的用户也可以使用AJAX(如果他们想要的话),而不是在特定于Trac中的“忽略目录浏览HTTP请求”系统。
我想知道的是,是否有人有更好的方式来这样的后处理应用到网页等方式尤其将本质发挥更好一点与AJAX,而不限制做什么我的用户的自由,他们希望与他们的网页。谢谢!
澄清:解析,修改等不是问题......这一点解决了,在我的情况下,与Python脚本和一些HTML文件库。真正的问题是a)是否有比我描述的更好的方法来完成通用的HTML后期处理?和b)是否有一种强大的方法来检测请求“是”AJAX还是“正常”? – andybuckley 2009-06-19 10:11:00