首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Iframe或as File中打开Javascript时会失败,但在作为Rails Server的一部分打开时可以正常工作

在Iframe或as File中打开Javascript时会失败,但在作为Rails Server的一部分打开时可以正常工作
EN

Stack Overflow用户
提问于 2012-01-14 02:45:17
回答 2查看 488关注 0票数 0

我正在尝试在一个iframe中呈现一些javascript。当我将其作为rails服务器的一部分打开时,即我将其作为/public目录的一部分打开时,Javascript就可以工作了。

但是,当我将其作为纯html文件或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><script src="http://www.google.com/adsense/search/ads.js" type="text/javascript"></script><script src="http://www.google.com/uds/api/ads/3.0/7945945e138d6d2d6c753e6353976ff6/search.IN.js" type="text/javascript"></script>
  </head>

  <body>


  <div class = "test" id="afs_adblock_0" style="padding: 0px px; background-color: ; height: 600px; width: 600px;" onmouseover="out_pixel = '/rd/out_pixel?target_host_path=http%3A%2F%2Fadsense.google.com&amp;pvid=7192&amp;msid=5&amp;fpos=0&amp;bpos=0&amp;bid=afs_adblock_0&amp;twiz_val=0&amp;durl=&amp;rq=350&amp;feed_id=0&amp;ex=1326646029&amp;cs=dca4b10de177c97d609359425b227904';"></div>


  </body>


<script type="text/javascript" charset="utf-8">
var pageOptions = {
  'pubId' : 'pub-8639021338656306',
  'query' : 'college',
  'channel' : '5150635874'
};
var afs_adblock_0 = {
  'container' : 'afs_adblock_0',
  'minTop' : '1x',
  'fontFamily' : 'arial',
  'fontSizeTitle' : '14px',
  'fontSizeDescription' : '12px',
  'fontSizeDomainLink' : '12px',
  'colorTitleLink' : '#0067B1',
  'colorText' : 'blue',
  'colorDomainLink' : 'green',
  'colorBackground' : '#D5E9F2',
  'titleBold' : true,
  'verticalSpacing' : 6,
  'rightHandAttribution' : true,
  'colorAdSeparator' : 'white',
  'height' : '500px',
  'width' : '300px',
  'siteLinks' : true,
'adLoadedCallback' : function(containerName, adsLoaded) {if(!adsLoaded){document.getElementById(containerName).style.display = 'none';}; track_afs_results('7192', containerName, adsLoaded, '1092dd58f07de305cb14c3a2661fe150');}};
document.getElementById('afs_adblock_0').style.padding='0px 20px';document.getElementById('afs_adblock_0').style.background='#D5E9F2';new google.ads.search.Ads(pageOptions, afs_adblock_0);

    var out_pixel = '/rd/out_pixel'
    var isOverIFrame = false;
    function processMouseOut() {
        isOverIFrame = false;
        top.focus();
    }
    function processMouseOver() { isOverIFrame = true;}
    function processIFrameClick() {
        if(isOverIFrame) {
          var xmlHttp = null;
          xmlHttp = new XMLHttpRequest();
          xmlHttp.open('GET', out_pixel, false);
          xmlHttp.send(null);
        }
    }

    function init() {
        b = document.getElementsByTagName("body")[0];
        if(/MSIE/.test(navigator.userAgent)){
          b.onunload = function() { processIFrameClick() };
        }
        else{
          b.setAttribute('onunload', 'javascript: processIFrameClick()');
        }
        var element = document.getElementsByTagName("iframe");
        for (var i=0; i<element.length; i++) {
            element[i].onmouseover = processMouseOver;
            element[i].onmouseout = processMouseOut;
        }
    }
    setTimeout("init();",800);
    </script>
<script src="http://www.google.com/uds/api/ads/3.0/7945945e138d6d2d6c753e6353976ff6/search.IN.js" type="text/javascript"></script>

这是怎么回事,我都要拔头发了!!在iframe中打开文件和通过rails服务器打开文件有什么不同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-14 02:51:58

此页面使用AJAX,因此需要与web服务器通信。该web服务器需要与页面位于相同的域中。当它作为文件打开时,不会发生这种情况。

票数 1
EN

Stack Overflow用户

发布于 2012-01-14 02:51:48

代码语言:javascript
复制
Uncaught TypeError: Cannot call method 'match' of undefined
Uncaught track_afs_results is not define

祝你好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8855555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档