【问题标题】:Iframe on Blogger javascript not workingBlogger javascript 上的 iframe 无法正常工作
【发布时间】:2011-01-06 01:01:42
【问题描述】:

我的 iframe 包含一些应该在正文加载时触发的 javascript,而 iframe 在嵌入纯 HTML 页面时可以正常工作,当集成到博客 HTML/javascript 小部件中时,iframe 中的 javascript 不起作用..建议。仅尝试过在 Firefox bc 病毒和工具栏吃掉 IE?

iframe 页面

    <!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>

【问题讨论】:

  • 也许一个指向它部署位置的链接会有所帮助?这段代码应该做什么?
  • 通过重定向将 var 文本作为 url 参数传递给 fb2.aspx..
  • 代码似乎是正确的,真的没有地方可以错过,但我想知道也许其他人在博主 iframe 中执行 java 的问题..因为代码是微不足道的
  • 我得到了那个部分,你是想将顶级页面重定向到那个页面还是只是 iframe?为什么不将“someaddress”硬编码到 iframe src 中?更好地了解您要完成的工作将帮助我们为您找到答案:)
  • 执行 Java??还是你的意思是 JavaScript ???

标签: javascript iframe blogger


【解决方案1】:

在幕后,Blogger 小部件/小工具系统似乎正在使用一种将代码添加到 DOM 的方法,该方法阻止了任何 JavaScript 的执行。通常,如果通过将内容附加到 .innerHTML 对象来添加内容,就会发生这种情况。 DOM 元素被渲染,但任何包含的 JavaScript 都不会执行。

解决此问题的方法超出了此问题的范围,因为这是博主的问题。

您的解决方案是直接编辑 Blogger 模板,然后将 IFRAME 粘贴到您希望它出现在模板本身中的位置。换句话说,不要使用小部件。

下面是我自己的 Blogger 模板的一部分,在结束正文元素之前有一个 iframe:

   </div>
  </div>
 </div>

 <script type='text/javascript'>
  window.setTimeout(function() {
     document.body.className = document.body.className.replace(&#39;loading&#39;, &#39;&#39;);
   }, 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/>

【讨论】:

  • 这真的很奇怪..将其硬编码为模板..仍然没有..您使用的是 Firefox 吗?
猜你喜欢
  • 2012-03-15
  • 2013-05-28
  • 1970-01-01
  • 2015-05-23
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多