我有iframe,其中包含一些javascript,应该触发正文加载,而iframe在嵌入纯HTML页面时效果很好,当集成在博客HTML / javascript小部件中时,iframe中的javascript无法正常工作..建议。仅限于在Firefox中,bc病毒和工具栏吃过IE?
iframe Page
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="javascript" type="text/javascript">
function change() {
var text = "someaddress";
window.location = "http://something.com/fb2.aspx" + "?url=" + text;
}
</script>
</head>
<body bgcolor="#333333" onload="change()">
</body>
</html>
Blogger博客上的HTML / javascript小部件代码
<iframe scrolling="no" src="http://something.com/fb.htm" width="200" height="70"
frameborder="0" name="myInlineFrame"></iframe>
嵌入在这个纯HTML页面中的sam iframe执行javascript,因为它应该
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Stats page</title>
</head>
<body>
<iframe src="fb.htm" runat="server" id="iframe1" width="500" height="500"></iframe>
</body>
</html>
答案 0 :(得分:1)
在幕后,看来Blogger小部件/小工具系统正在使用一种向DOM添加代码的方法,该方法可以阻止任何JavaScript的执行。通常,如果通过将内容附加到.innerHTML对象来添加内容,则会发生这种情况。呈现DOM元素,但任何包含的JavaScript都不会执行。
此问题的解决方法超出了此问题的范围,因为它是一个博主问题。
您的解决方案是直接编辑Blogger模板,并将IFRAME粘贴到您希望在模板中显示的位置。换句话说,不要使用小部件。
下面是我自己的Blogger模板的一部分,在关闭的body元素之前有一个iframe:
</div>
</div>
</div>
<script type='text/javascript'>
window.setTimeout(function() {
document.body.className = document.body.className.replace('loading', '');
}, 10);
</script>
<!-- Iframe in template -->
<iframe scrolling="no" src="http://somedomain.com/fb.htm" width="200" height="70"
frameborder="0" name="myInlineFrame"></iframe>
<!-- Iframe in template -->
</body>
<macro:includable id='sections' var='col'>
<macro:if cond='data:col.num == 0'>
<macro:else/>