首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扇木盒ajax弹出-完整的HTML还是只是内容?

扇木盒ajax弹出-完整的HTML还是只是内容?
EN

Stack Overflow用户
提问于 2015-03-24 10:28:32
回答 1查看 63关注 0票数 0

我创建了一个网站,它使用Fancybox为ajax弹出窗口(主要是表单)。这些弹出窗口的内容是从PHP文件中加载的。一切都很好。

我的实际问题是: Fancybox弹出页面是否包含

( A)完整的HTML (包含doctype、head、css等),或

B)只是表单的HTML,类似于Fancybox的内联版本。Fancybox文档在它们的示例中使用了这一点。

我对这两种方法都进行了测试,它们都能发挥作用,但有一些细微的差别:

  • 只有在弹出窗口中初始化数据报警器时,它才能工作。
  • css文件都可以在弹出窗口中使用。
  • 难以测试B版的HTML有效性
  • 版本A工作,甚至应该打破Fancybox由于任何原因

这就是为什么我倾向于选择一个选项,但我在这里遗漏了什么吗?我没有考虑这些问题吗?我不想使用内联版本,因为一个页面上有很多表单,而且一次使用的很少。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-24 16:51:59

您应该考虑到一些细微的差异:

1)。当您通过ajax加载内容时,内容将成为当前文档的一部分,并且加载该内容的(父)页面的CSS和JS设置将影响ajaxed元素。

换句话说,任何(CSS和JS)功能(理想情况下)都需要在父页面(使用委托形式)中初始化,或者在fancybox回调(afterShow for fancybox v2.x)中初始化它们。

在这种情况下,返回的内容(来自php文件)不需要完整的结构(DOCTYPE<head><link><script>标记),而需要内容主体的HTML元素。

的底线:父页面和ajax内容成为一个单一的文档(尽管在关闭fancybox之后将从DOM中删除ajax元素)

备注:ajaxed页面中的元素可能会影响父页面中的元素或与其发生冲突。

2)。另一方面,您可以有一个独立的、功能齐全的页面(DOCTYPE<head><link><script>标记等)。具有自己的CSS和JS功能。

此页面可以通过iframe模式加载到fancybox中,其DOM元素不会受到父页的CSS和JS设置的影响(父页中的元素也不会受到iframed页面中的元素的影响)

底线:不管视图如何,父页面和iframe内容都是两个分开的文档。

你需要用什么?

如果您不喜欢在父页面中加载和初始化许多脚本,那么您可能希望使用iframe,但是这是一个有许多答案的问题,应该由您来决定什么是最好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29230183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档