【发布时间】:2013-04-12 18:36:24
【问题描述】:
这是我的情况。
我有一个名为iframe.html 的文件,其中包含图像幻灯片的代码。
代码有点像
<html>
<head>
<!-- Have added title and js files (jquery, slideshow.js) etc. -->
</head>
<body>
<!-- Contains the images which are rendered as slidehow. -->
<!-- have hierarchy like 'div' inside 'div' etc. -->
</body>
</html>
用户可以使用嵌入代码将幻灯片添加到他们的博客或网站(可以来自不同的域)。假设用户必须在index.html 中嵌入幻灯片,他们可以通过添加以下行来添加:
<iframe id="iframe" src="path_to_iframe.html" width="480" height="320" scrolling="no" frameborder="0"></iframe>
这会将完整的 HTML 代码从 iframe.html 带到 index.html,现在我需要一种方法来访问 iframe 中的元素以调整它们的一些属性。
就像在代码中一样,iframe 的宽度和高度由用户设置为一些固定尺寸。我想将幻灯片(和包含的图像)的大小调整为 iframe 容器的大小。最好的方法是什么?
我尝试通过类似的方式从index.html 访问 iframe 组件,但没有成功
$('#iframe').contents();
但得到错误:
TypeError: 无法调用 null 的方法“内容”
所以,我想在iframe.html 中实现逻辑,其中幻灯片应该检查父级的宽度和高度并相应地设置其高度。
我很困惑,希望我的问题对大多数人来说都有意义。请随时询问进一步的解释。感谢您的帮助。
【问题讨论】:
-
您的描述中可见的可能问题是您在
iframe.html中添加了jQuery.js而不是index.html,而是在index.html中编写代码 -
@Knaģis 我已将
jQuery.js文件添加到iframe.html,而不是index.html -
如果
index.html没有对jquery.js的引用,则不能在现有脚本中使用$()语法(JavaScript 引用与窗口/框架隔离)。 -
@Knaģis 我认为你可能是对的。我已经使用我接受的解决方案(使用 javascript)完成了这项工作。但是,当我使用浏览器的控制台并输入
$时,它会返回function。我认为加载在 iframe 中的 jQuery 也可以在外部访问。