- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 AdSense 脚本,我的脚本出现问题...当 AdSense 脚本加载失败时,我的脚本运行良好,但如果加载 AdSense,我的脚本就不会加载。我知道我的脚本在 AdSense 脚本之后运行。
所以我在想,如果我的脚本在 AdSense 脚本运行之前运行(因为是一个将预标记更改为表格的脚本,因此它只会更改布局),那么所有内容都会加载,而不仅仅是加载 AdSense ...
我的 JavaScript 是:
window.onload = function(){
var preElements = document.getElementsByTagName('pre');
var codeLine = new Array();
var newContent
for(var i = 0; i < preElements.length; ++ i)
{
var element = preElements[i];
newContent='<div align="center"><table width="75%" border="1" cellpadding="0" cellspacing="0" >'
codeLine = element.innerHTML.split('\n');
for(var j=0 ; j < codeLine.length ; j++){
newContent = newContent + '<tr><td width="30" class="codeNumber" >' + j.toString() + ' </td><td class="codeTab"> ' + codeLine[j] + '</td></tr>';
}
newContent = newContent + '</table></div>';
element.innerHTML = newContent;
}
}
它加载在 Head 部分,AdSense 加载在单元格内,而我只有一个广告空间。我无法为单元格提供 ID,因为 AdSense 不是单元格上唯一的东西...还有一件事...调用 AdSense 的位置与我拥有预标记的位置完全不同
已解决:首先我对此真的不太了解,经过一番研究后我发现了问题。1° AdSense 出现连接问题,因此在其之后运行的所有脚本都不会加载2° 如果脚本中有“window.onload”,那么脚本在哪里并不重要...我认为该函数在窗口加载时起作用,但实际上,它会在窗口完全加载后起作用,这就是为什么它与 AdSense 产生了冲突。
你们帮助我更快地看到了这些东西!
最佳答案
通常,大多数人将广告和分析代码包含在结束 </body>
标记之前。
您应该尽量避免代码的竞争条件,从加载到执行,它应该是事件驱动和模块化的。如果 Adsense 需要进入由另一个脚本设置的容器中,那么让其他脚本在完成更新 DOM 后加载 Adsense 作为回调是有意义的。像这样的事情:
function loadAdsense(elementId) {
var js = document.createElement('script');
js.src = 'http://pagead2.googlesyndication.com/pagead/show_ads.js';
window.google_ad_client = 'ca-pub-xxxxxxxxxxxx';
window.google_ad_slot = '1234567890';
window.google_ad_width = 336;
window.google_ad_height = 280;
document.getElementById(elementId).appendChild(script);
}
function preToTable() {
// set PRE to TABLE - id = myNewTable
// then load Adsense
loadAdsense('myNewTable');
}
关于javascript - 如何让一段 JavaScript 代码先于另一段代码运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15207344/
我是一名优秀的程序员,十分优秀!