基于innerHTML中的script广告实现代码[广告全部放在一个js里面] 原创

如果不清楚innerHtml的脚本如何运行的可以参考这篇文章
http://www.jb51.net/article/234.htm
下面的代码目的就是防止有些网站需要将一些特别的广告放到script中,大家可以完全用iframe替换,联盟广告大家可以用后加载的方式,特别处理。
推荐的代码的写法:


代码如下:

if(PageClass==2)
{
     //顶部通栏 468*60用iframe方式加载
     set_innerHTML('Head_2_2',All_Top_468_60);
     //顶部468*60
     set_innerHTML('Head_5',All_Top_970_60);
     Temp_Adv='<iframe scrolling="no" frameborder="0" marginheight="0" marginwidth="0" width="240" height="152"
src="/show/html/List_1_1_4.html" style="margin-bottom:5px;"></iframe>';
     set_innerHTML('List_1_1_4',Temp_Adv);

//下载右边文字 直接地址+图片 推荐
Temp_Adv='| <a href="http://www.jb51.net?" class="wLink" target="_blank">我们</a> ';
    document.getElementById("Soft_1_2_4_h2").innerHTML+=Temp_Adv;
    // set_innerHTML('Soft_1_2_2_1_2',Temp_Adv);
}

上面的是4668*60

上面的是4668*602 因为直接用的是inner所有不显示。

var PageClass=1
//上面主要是为了区分页面,首页,列表页,内容页的控制,原理不错
var global_html_pool = [];
var global_script_pool = [];
var global_script_src_pool = [];
var global_lock_pool = [];
var innerhtml_lock = null;
var document_buffer = "";

function set_innerHTML(obj_id, html, time) {
if (innerhtml_lock == null) {
innerhtml_lock = obj_id;
}
else if (typeof(time) == "undefined") {
global_lock_pool[obj_id + "_html"] = html;
window.setTimeout("set_innerHTML('" + obj_id + "', global_lock_pool['" + obj_id + "_html']);", 20);
return;
}
else if (innerhtml_lock != obj_id) {
global_lock_pool[obj_id + "_html"] = html;
window.setTimeout("set_innerHTML('" + obj_id + "', global_lock_pool['" + obj_id + "_html'], " + time + ");", 20);
return;
}

function get_script_id() {
return "script_" + (new Date()).getTime().toString(36)
+ Math.floor(Math.random() * 100000000).toString(36);
}

document_buffer = "";

document.write = function (str) {
document_buffer += str;
}
document.writeln = function (str) {
document_buffer += str + "\n";
}

global_html_pool = [];

var scripts = [];
html = html.split(//i);
for (var i = 0; i ') + 1);
scripts[i].src = scripts[i].src.match(/src\s*=\s*(\"([^\"]*)\"|\'([^\']*)\'|([^\s]*)[\s>])/i);
if (scripts[i].src) {
if (scripts[i].src[2]) {
scripts[i].src = scripts[i].src[2];
}
else if (scripts[i].src[3]) {
scripts[i].src = scripts[i].src[3];
}
else if (scripts[i].src[4]) {
scripts[i].src = scripts[i].src[4];
}
else {
scripts[i].src = "";
}
scripts[i].text = "";
}
else {
scripts[i].src = "";
scripts[i].text = scripts[i].text.substr(scripts[i].text.indexOf('>') + 1);
scripts[i].text = scripts[i].text.replace(/^\s*/i)) {\n";
end_script += "set_innerHTML('" + obj_id + "', document_buffer, " + s + ");\n";
end_script += "}\n";
end_script += "else {\n";
end_script += "document.getElementById('" + obj_id + "').innerHTML = document_buffer;\n";
end_script += "innerhtml_lock = null;\n";
end_script += "}";
window.setTimeout(end_script, s);
}

// JavaScript Document
if( PageClass ==null)
{
var PageClass = 0;
}
// ==============公共变量=====================
var delta=0.15;
//==================函数列表=========================
function PostCookie(cookieName)
{
var expdate = new Date();
expdate.setTime(expdate.getTime() + 604800000);
document.cookie=cookieName+";expires="+expdate.toGMTString()+";path = /;domain=.jb51.net";
}
//用于产生随机轮转广告 i 随机个数
function GetRandom(i)
{
var dt = new Date();
var hr = dt.getSeconds();
hr = hr%i;
return hr;
}
//读取Cookies值
function getCookie(cookieName)
{
var cookieString =document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// 加上等号的原因是避免在某些 Cookie 的值里有
// 与 cookieName 一样的字符串。
if (start == -1) // 找不到
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1)
return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}

//下载指定的文件
function PosDownload(url)
{
top.location.href =url;
return true;
}

//复制标题和网址
function copypageurltitle()
{
var clipBoardContent='';
clipBoardContent =document.title;
clipBoardContent+='\r\n';
clipBoardContent+=document.location;
window.clipboardData.setData("Text",clipBoardContent);
alert("标题和网址已经拷贝,请发给你QQ/Msn或者可以粘贴到论坛上和您的好友一起分享 ^_^ ");
}

var IsShowAds = true; //是否显示广告
if(getCookie("IsShowAds")=="False") IsShowAds=false;
//=========================================================================================

if(PageClass==1)
{
PostCookie("IsShowAds=False");
//上面的 cookies主要是为了控制,广告显示以后,刷新后或打开别的页面 广告就不显示。
//顶部通栏 468*60
Temp_Adv="";
set_innerHTML('jb51',Temp_Adv);
Temp_Adv2="";
set_innerHTML('jb512',Temp_Adv2);
//在jb51上面加一个广告1
Temp_Adv3= "";
document.getElementById("jb51").innerHTML +=Temp_Adv3;
//在jb51上面加一个广告2
var aNode =document.createElement("div");
aNode.style.marginBottom =2;
aNode.innerHTML = "";
var Prean=document.getElementById("ss");
Prean.parentNode.insertBefore(aNode,Prean);
}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

经测试发现,如果想在有运行script的上面加广告是不可能的因为这些脚本是后执行的,所有脚本广告可以直接在脚本中写入,不要随便的后加入了。

但如果是其它的广告是可以前面加入广告的,一些网站都是直接通过script控制全站的广告,虽然我们暂时没有使用这种方法,不过在以后我们也会参考这个方法。

最主要的是广告,大家可以尽量的避免使用script,尽量的使用iframe或直接代码,图片链接等方法是非常不错的。

(0)

相关推荐

  • 基于innerHTML中的script广告实现代码[广告全部放在一个js里面] 原创

    如果不清楚innerHtml的脚本如何运行的可以参考这篇文章http://www.jb51.net/article/234.htm下面的代码目的就是防止有些网站需要将一些特别的广告放到script中,大家可以完全用iframe替换,联盟广告大家可以用后加载的方式,特别处理.推荐的代码的写法: 复制代码 代码如下: if(PageClass==2) {      //顶部通栏 468*60用iframe方式加载      set_innerHTML('Head_2_2',All_Top_468_6

  • 让插入到 innerHTML 中的 script 跑起来的实现代码

    这个问题在某些时候微不足道,甚至可以忽略,但有些时候,这个问题就非常严重,它很可能让我们的程序得不到预期的结果.因此我们需要解决这个问题. 如果你读过 MSDN,你会发现并非所有插入到 innerHTML 中的脚本都不能执行,如果这段脚本的 script 标签中包含了 defer 属性,IE 会正确的执行这些脚本程序.但不幸的是,Moziila/Firefox 和 Opera 可不吃这一套,不管 script 标签有没有设置 defer 属性,这些浏览器都不会向 IE 那样去执行插入到 inne

  • 让插入到 innerHTML 中的 script 跑起来的代码第1/2页

    在做 ajax 编程时,我们常常需要将 xmlhttp 获取到的页面内容通过 innerHTML 来赋给某个容器(比如 div.span 或者 td 等),但是这里存在一个问题,就是我们将要赋给 innerHTML 的页面内容如果包含有脚本程序,这些脚本程序不管是外部脚本,还是内部脚本,可能(1)都不会被执行.这个问题在某些时候微不足道,甚至可以忽略,但有些时候,这个问题就非常严重,它很可能让我们的程序得不到预期的结果.因此我们需要解决这个问题. 如果你读过 MSDN,你会发现并非所有插入到 i

  • ASP.NET 网站开发中常用到的广告效果代码

    用本贴持续记录一些收集的广告效果.希望给有需求的朋友们一些支持.也希望朋友们把我未记录的广告形式也给予一起回贴.使本贴更加的完善,也让更多的朋友们分享. 1.翻屏效果 翻屏效果 复制代码 代码如下: <html> <head></head> <body> <div style="HEIGHT:85px"> <script LANGUAGE='JavaScript'> document.ns = navigator.

  • javascript 获取url参数和script标签中获取url参数函数代码

    url paramter: 复制代码 代码如下: //lastest: var getArgs=function() {//get url querystring var params=document.location.search,reg=/(?:^\?|&)(.*?)=(.*?)(?=&|$)/g,temp,args={}; while((temp=reg.exec(params))!=null) args[temp[1]]=decodeURIComponent(temp[2]);

  • Django中针对基于类的视图添加csrf_exempt实例代码

    在Django中对于基于函数的视图我们可以 @csrf_exempt 注解来标识一个视图可以被跨域访问.那么对于基于类的视图,我们应该怎么办呢? 简单来说可以有两种访问来解决 方法一 在类的 dispatch 方法上使用 @csrf_exempt from django.views.decorators.csrf import csrf_exempt class MyView(View): def get(self, request): return HttpResponse("hi"

  • 基于ElementUI中Table嵌套实现多选的示例代码

    前言: 写这个是因为帮朋友修改项目中的bug 我也是第一次写这个功能,有不对的希望大家指正,如果看完有帮助点个赞! 代码中关键是js中Tree的路径查找这个核心,有不懂的自行百度 多了不说了,有需要的可以私信找我要代码,来看下我怎么实现的 思路: 从头开始看这个需求,我们需要知道用到哪写东西 1.表格Table 2.多选&全选 3.嵌套数据(下拉操作) 正好我们可以找下ElementUI官方文档 找到了我们需要用到的API 在嵌套数据的时候需要使用tree-props 选中数据的时候使用togg

  • 基于JS实现密码框(password)中显示文字提示功能代码

    其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就是放两个文本框,样式以及定位都是一样的.先将type为password的隐藏,只显示type为text的伪密码框,value设置提示内容例如请输入密码.然后当input触发的时候,type为text的input隐藏,让type为password的input显示出来.然后当检测password的val

  • jQuery 浮动广告实现代码

    实现方法: 复制代码 代码如下: <!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>浮动广

  • jquery京东商城双11焦点图多图广告特效代码分享

    本文实例讲述了jquery京东商城双11焦点图多图广告特效.分享给大家供大家参考.具体如下: jquery实现的京东商城双11焦点图多图广告滑动及自动切换动画效果源码,是一段模仿京东商城双11的焦点图代码,专业应用于网站的图片展示及重点展示的区域,该段代码实现了鼠标滑过切换图片及自动切换图片两种效果. 运行效果图:     -------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的jque

随机推荐