我有一个基于dropwizard的应用程序,该应用程序以iframe开头网页。
<iframe id="someId" name="someName"></iframe>
到目前为止很简单。每当我导航到自己的网址时,都会有一个不执行任何操作的iframe。我想通过后端的rest API调用为该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();
}
当我进行此API调用时,它将返回html,该html查找iframe并设置src。但这不起作用,因为调用API时,它会将我重定向到空白页面(远离包含iframe的网页),因此window.parent.document.getElementById
不会读取iframe。而是null
。是否有一种快速/肮脏的方法来防止重定向并停留在我的页面上,以便可以更改iframe src?