是否可以通过java rest api调用修改iframe的来源?

时间:2019-06-04 17:22:47

标签: javascript java html iframe

我有一个基于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?

0 个答案:

没有答案