Javascript 是否可以通过java rest api调用修改iframe的源代码?
我有一个基于dropwizard的应用程序,它用iframe启动网页Javascript 是否可以通过java rest api调用修改iframe的源代码?,javascript,java,html,iframe,Javascript,Java,Html,Iframe,我有一个基于dropwizard的应用程序,它用iframe启动网页 到目前为止很简单。每次我导航到我的url时,都会有一个iframe,它什么也不做。我想通过后端的RESTAPI调用为这个iframe动态设置一个src属性。基本上,这允许我使用一些java代码返回html,该html读取此iframe的id并设置src private String html = "<html>\n" + "<script type=\"text/javascript\"&g
到目前为止很简单。每次我导航到我的url时,都会有一个iframe,它什么也不做。我想通过后端的RESTAPI调用为这个iframe动态设置一个src属性。基本上,这允许我使用一些java代码返回html,该html读取此iframe的id并设置src
private String html = "<html>\n"
+ "<script type=\"text/javascript\">\n"
+ "function myFunction () {\n"
+ "var iframe = window.parent.document.getElementById"
+ "(\"someId\");\n"
+ " iframe.src = \"https://localhost:9999/api/someApi\"\n"
+ "}\n"
+ "window.onload = setTimeout(myFunction, 10000);\n"
+ "</script>\n"
+ "</html>";
@GET
@Path("/invokeFrame")
@Produces(MediaType.TEXT_HTML)
public Response invokeFrame()
{
return Response.ok(html).build();
}
private String html=“\n”
+“\n”
+“函数myFunction(){\n”
+“var iframe=window.parent.document.getElementById”
+“(\'someId\”);\n”
+“iframe.src=\”https://localhost:9999/api/someApi\“\n”
+“}\n”
+window.onload=setTimeout(myFunction,10000);\n
+“\n”
+ "";
@得到
@路径(“/invokeFrame”)
@生成(MediaType.TEXT\u HTML)
公共响应invokeName()
{
返回Response.ok(html.build();
}
当我进行这个API调用时,它返回找到iframe并设置src的html。但这不起作用,因为调用API时,它会将我重定向到一个空白页面(远离包含iframe的网页),因此window.parent.document.getElementById
不会读取iframe。相反,它是null
。是否有一种快速/肮脏的方法来阻止重定向并停留在我的页面上,以便可以更改iframe src