Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case class MySetHtml(uid:String, xhtml:NodeSeq) extends JsCmd {
- def filterScripts(xhtml:NodeSeq):(String, NodeSeq) = {
- def xform(in: NodeSeq): NodeSeq = in flatMap {
- case e: Elem if e.label == "script" => NodeSeq.Empty
- case e: Elem => Elem(e.prefix, e.label, e.attributes, e.scope, xform(e.child) :_*)
- case g: Group => xform(g.child)
- case x => x
- }
- val scripts = for(script <- xhtml \\ "script") yield script.text
- (scripts.toList.mkString, xform(xhtml))
- }
- override def toJsCmd = {
- val (script, nodes) = filterScripts(S.session.map(s => s.fixHtml(s.processSurroundAndInclude("JS SetHTML id: " + uid, xhtml))).openOr(xhtml))
- val html = AltXML.toXML(Group(nodes),false, true, S.ieMode).encJs
- "try{jQuery(" + ("#" + uid).encJs + ").each(function(i) {this.innerHTML = " + html + ";}); " + script + "} catch (e) {}"
- }
- }
Add Comment
Please, Sign In to add comment