Grails groovy - 渲染纯粹的js代码

时间:2013-04-25 21:19:06

标签: javascript grails

这是Executing groovy statements in JavaScript sources in Grails

的副本

有一点不同,我只是想呈现js-code,周围没有脚本标签

想象某人从他的html中加载一个脚本,如

<script type="text/javascript" src="mywebsite.com/xyJs/xyz"></script>

我希望呈现请求的“内容”

在控制器内我解析/xyz并找出脚本中必须包含的内容以及iframe的src的绝对链接 我也需要运行这个groovy脚本 我正试图这样做

    render "document.writeln('<iframe src=\"${grailsApplication.config.grails.serverURL}/superStuff/stuff23/${profil.slugs}\" name=\"SuperStuff\" width=\"300\" height=\"600\" align=\"left\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" frameborder=\"0\" ></iframe>');"

但浏览器只是忽略了document.writeln(' 并将iframe视为html元素并呈现其内容

如何在不设置脚本标签的情况下宣布它只是一小部分js代码?

我也尝试渲染像

这样的视图
render(view:'SuperStuff',model:[profil:profil])

并且在视图内部SuperStuff是

<%@ page contentType="text/javascript; UTF-8" %>
document.writeln("<iframe src='${grailsApplication.config.grails.serverURL}/superStuff/stuff23/${profil.slugs}' name='SuperStuff' width='300' height='600' align='left' scrolling='no' marginheight='0' marginwidth='0' frameborder='0' ></iframe>");

但这也不起作用并呈现iframes的src的内容 我做错了什么?

对于任何提示,这让我模糊,提前谢谢

2 个答案:

答案 0 :(得分:1)

yeaaaah得到了一个固定的

render contentType: 'text/javascript', text: "document.writeln('<iframe src=\"${grailsApp......."

答案 1 :(得分:0)

我相信,你的控制器正常工作:它完全按照你想要的方式返回javascript代码:你对document.writeln()的调用。请使用FirebugChrome DevTools或类似网络面板进行验证。

但是,将立即执行js-code,这会导致在当前位置包含指定的iframe元素,如here所述。