Javascript在Iframe或文件中打开时失败,但在作为Rails服务器的一部分打开时有效
Javascript Fails When Opened In an Iframe or as File, but Works When Opened As Part of Rails Server
我正在尝试在iframe中呈现一些javascript。当我把它作为rails服务器的一部分打开时,Javascript就可以工作了,也就是说,我把它当作/public目录的一部分来打开。
然而,当我将它作为一个纯html文件或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><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&pvid=7192&msid=5&fpos=0&bpos=0&bid=afs_adblock_0&twiz_val=0&durl=&rq=350&feed_id=0&ex=1326646029&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服务器打开文件有什么区别。
此页面使用AJAX,因此需要与web服务器进行通信。该web服务器需要与页面位于同一域中。当它作为文件打开时,这种情况不会发生。
Uncaught TypeError: Cannot call method 'match' of undefined
Uncaught track_afs_results is not define
祝你好运
相关文章:
- Rails服务器因为uglifier gem而失败
- Angularjs UI视图和Rails服务器端模板路由
- Rails:服务器端运行HTML和Javascript
- 从JavaScript应用程序到Rails服务器的数据传输
- 为什么我的 rails AJAX 请求会抛出内部服务器错误
- Ajax、Javascript变量和服务器端变量-Rails
- 当我在Unicorn服务器上运行时,Websockets在我的Rails应用程序中不工作,但在瘦服务器上工作
- Javascript在Iframe或文件中打开时失败,但在作为Rails服务器的一部分打开时有效
- rails服务器/控制台错误-没有这样的文件可加载-咖啡脚本(LoadError)
- Rails - 500从服务器上JQuery Ajax POST(也在GET)
- Rails:在服务器端保存Google图表
- 如何使用Ruby on Rails在服务器端运行Javascript
- 从Rails服务器通过AJAX返回的JSON运行失败
- 应该从Rails服务器返回javascript (. JS .erb)还是在Ajax调用后更新页面时使用本机JS回调机制
- 通过rails服务器从chrome扩展解耦Github Oauth2
- Rails服务器没有使用更新的JavaScript
- 使用AJAX从Ruby on Rails服务器获取JSON内容
- 使用 AJAX 从 jQuery 向 Rails 服务器提交表单在 IE11 中不起作用
- 上传文件从javascript到rails服务器
- 将Javascript更改保存到Rails服务器