【问题标题】:Launching a floating window/ iframe without an AJAX framework在没有 AJAX 框架的情况下启动浮动窗口/ iframe
【发布时间】:2011-06-21 02:51:11
【问题描述】:

因此,我需要能够将 iframe 作为页面上的层打开,但考虑到权重和潜在的冲突,我无法加载框架,因为这是其他网站的插件。

这里的目标是尽可能轻,同时避免交叉,因为使用它的网站可能涉及 jquery / yui 或其他脚本框架。页面是多部分的,所以一个简单的层是行不通的,它必须是一个成熟的 iFrame,能够淡化底层窗口并将其关闭,同时还可以漂浮在页面元素、下拉菜单甚至 Flash 上。

Colorbox-min 将是一个理想的解决方案,但依赖性会扼杀它。

我在框架方面做得很好,但我自己是一个 JS 新手。在一个充满现成脚本的世界里,Google 帮不上什么忙……有什么建议可以从哪里开始吗?

【问题讨论】:

  • 也许你可以明确你想要做什么,从描述来看你似乎正在尝试做一个对话插件?多部分页面或“简单层”是什么意思?
  • 没问题!我希望在现有窗口的顶部打开一个 iFrame 以将外部文档加载到其中。这些窗口似乎是同一页面的一部分,如果页面关闭,这些窗口就会关闭。这通常使用 Colorbox 之类的插件完成,但这些窗口需要 jquery 或 yui 之类的框架,除了尺寸相当大之外,还有可能与也使用该框架的其他脚本发生冲突,因此我正在寻找直接打开窗口的指导,其背后没有主要系统。

标签: javascript jquery ajax iframe yui


【解决方案1】:

如果我理解正确,您正在尝试创建一个 iframe 并将其插入您的页面,而不使用任何框架,所以这里是:

var frame = document.createElement('iframe');
frame.src= "http://www.google.com";
frame.width = "200";
frame.height = "200";
frame.style.position = "absolute";
frame.style.top = "30px";
frame.style.left = "30px";
frame.style.border = "solid 1px red";
document.getElementById("IdOfContainer").appendChild(frame);

现在,只是为了讨论,使用 jquery 或 yui 或其他一些高质量的库通常不会与其他脚本发生冲突,他们非常注意保护自己免受其他脚本的影响,并且不会污染其他脚本的命名空间.

Here's a working sample of plain javascript and other using jquery

【讨论】:

  • 这对我有用,除了(1)由于框架的位置是绝对的,你可以将它附加到任何元素,所以我只选择了按钮而不是“IdOfContainer”。 (2) 我可以看到浮动 iframe,我用 $(frame).css('background-color', '#FFFFFF'); 摆脱了它。 (别忘了,它是 200x200 像素,所以在向下滚动之前它不会在 google.com 中显示任何内容!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多