我正在编写一个小部件:用 JavaScript 加载然后嵌入一个 iframe,这样我就可以毫无问题地获得 jQuery 支持,并且小部件中没有 CSS 问题。
该小部件嵌入到这样的网站上:
<script type="text/javascript">
var _sid = '1';
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
se.src = '//xxxxxxx.com/loader.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
在里面loader.js
我正在向页面编写以下代码:
<div id="lHB" style="margin: 0px; padding: 0px; border: 0px; background-color: transparent; overflow: hidden; position: fixed; z-index: 10000001; display: block; right: 0px; bottom: 0px; height: 28px; width: 240px; background-position: initial initial; background-repeat: initial initial;" class="_FloatingButton">
<iframe id="_iframe" src="http://www.xxxxxxx.com/index.php" frameborder="0" style="background-color: #eee; vertical-align: text-bottom; overflow: hidden; position: relative; width: 100%; height: 100%; margin: 0px; z-index: 999999;">
</iframe>
</div>
在我的内部index.php
是我填充小部件内容的地方,我使用 jQuery 执行此操作。我从 iframe 加载它的原因是确保我不会遇到 CSS 问题和 jQuery 冲突。
index.php 包含:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"></head>
<body>
<script type="text/javascript">
var _sid = '1';
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
se.src = '//xxxxxxxxxx.com/hello.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
</body>
</html>
将hello.js
小部件内容动态加载到index.php
页面上。一切都很好,唯一的问题是:
我想height: 28px;
从loader.js
. hello.js
我试图找到
$('#_iframe', window.parent.document).css('height', 220);
但它不会找到_iframe
:/
任何想法我做错了什么?