我被要求实现一个通用的 Web 小部件,它可以嵌入到驻留在其他域中的任意网页中。小部件是由 Java 后端生成的简单表单,连同通常的姓名、名字和电子邮件字段一起上传文件 (an <input type="file">
)。由于需要进度条并且用户必须能够取消文件上传,我想我需要使用 AJAX。
我使用 JQuery Form 插件创建了一个仅包含此特定小部件的独立页面,将其调整到我的后端并且它确实有效。但!我仍然必须找到一种将其嵌入现有页面的方法。你是怎么做到的?我对前端开发没有太多经验,所以我不知道是否有典型的方法来实现这一点。
我尝试使用 an iframe
,但找不到一种方法来设置自身的样式,iframe
以使用户不会注意到它是 an iframe
,就像 HTML5seamless
属性会做的那样(最新的 Chrome 并且只尝试了 CSS)。设置内容的样式是另一回事:可以iframe
继承主机页面的样式吗?甚至可以iframe
在主机页面中设置样式吗?跨浏览器?
我还尝试了 AJAX-load
使用 JQuery 的小部件并将其放入主机页面的 DOM 中。这有效,但显然只有当小部件(现在是主机页面的一部分)和后端位于同一域中时,情况并非如此。我能够将我的小部件包含在 JSONP 中,但是文件上传将无法正常工作,因为后端仍在另一个域中。
因此,我遇到了与解决方案有关的样式问题iframe
,以及与 AJAX 解决方案有关的跨域问题。也许我把事情弄得太复杂了,我不知道。
有人可以指出我正确的方向吗?谢谢!