1

これは、 Grails の JavaScript ソースで Groovy ステートメントを実行するの複製です。

違いが 1 つあります。js コードをレンダリングしたいだけで、その周りにスクリプト タグはありません。

誰かが私のサーバーから彼のHTML内のスクリプトをロードすると想像してください

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

リクエストの「コンテンツ」をレンダリングしたい

コントローラー内で解析し/xyz、スクリプト内にある必要があるものと、iframe の src への絶対リンクを見つけます。このグルーヴィーなスクリプトも実行する必要があります。

    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>");

しかし、これも機能せず、iframeのsrcのコンテンツをレンダリングします

どんなヒントでも、これは私を曖昧にします、前もって感謝します

4

2 に答える 2

0

あなたのコントローラーは期待どおりに機能すると思います。それは、あなたが望むとおりに正確に JavaScript コードを返します: document.writeln() への呼び出し。これを確認するには、 FirebugChrome DevToolsなどの Network-Panel を使用してください。

ただし、js コードはすぐに実行され、その結果、指定された iframe 要素が現在の位置に含まれるようになります

于 2013-04-26T07:29:11.603 に答える