这是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的内容 我做错了什么?
对于任何提示,这让我模糊,提前谢谢
答案 0 :(得分:1)
yeaaaah得到了一个固定的
render contentType: 'text/javascript', text: "document.writeln('<iframe src=\"${grailsApp......."
答案 1 :(得分:0)
我相信,你的控制器正常工作:它完全按照你想要的方式返回javascript代码:你对document.writeln()的调用。请使用Firebug,Chrome DevTools或类似网络面板进行验证。
但是,将立即执行js-code,这会导致在当前位置包含指定的iframe元素,如here所述。