<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script language="javascript">var setInnerHTML = (function () {
var element_stack = [];
var input_stack = [];
var html_stack = [];
var timer = null;
var ua = navigator.userAgent.toLowerCase();
var isIE = (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0);
var old_document_write = document.write;
var old_document_writeln = document.writeln;
var loding_script = false;
var callback = function () {
if (loding_script) {
return;
}
if (element_stack.length == 0) {
clearInterval(timer);
timer = null;
document.write = old_document_write;
document.writeln = old_document_writeln;
return;
}
var index = element_stack.length - 1;
var input = input_stack[index];
if (input.length == 0) {
input_stack.pop();
var element = element_stack.pop();
var html = html_stack.pop();
element.innerHTML = '';
if (typeof beforeInsert == 'function') {
html = beforeInsert(html);
}
if (html.match(/<script([^>]*>)((.|\r|\n)*?)<\/script>/i) != null) {
setInnerHTML(element, html);
return;
}
if (isIE) {
html = '<div style="display:none">for IE</div>' + html;
element.innerHTML = html;
element.removeChild(element.firstChild);
} else {
element.innerHTML = html;
}
return;
}
var item = input[input.length - 1];
if (typeof item == 'string') {
html_stack[index] += item;
input.pop();
} else if (typeof item == 'object') {
if (item.src) {
loding_script = true;
var script = document.createElement('script');
script.src = item.src;
script.__index = index;
if (isIE) {
script.onreadystatechange = script_loaded;
} else {
script.onload = script_loaded;
}
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
}
if (item.text) {
var script = document.createElement('script');
script.text = item.text;
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
input.pop();
}
} else {
input.pop();
}
}
var script_loaded = function () {
if (isIE && this.readyState.toLowerCase() != "loaded" && this.readyState.toLowerCase() != "complete") {
return;
}
var index = this.__index;
input_stack[index].pop();
loding_script = false;
}
var new_document_write = function() {
for (var i = 0; i < arguments.length; i++) {
html_stack[element_stack.length - 1] += arguments[i];
}
}
var new_document_writeln = function () {
for (var i = 0; i < arguments.length; i++) {
new_document_write(arguments[i] + "\n");
}
}
return function (element, htmlCode) {// alert('element:' + element);
alert('htmlCode' + htmlCode); element_stack.push(element);
html_stack.push('');
var input = [];
while (true) {
if ((m = htmlCode.match(/<script([^>]*>)((.|\r|\n)*?)<\/script>/i)) == null) {
break;
}
input.unshift(htmlCode.substr(0, m.index));
htmlCode = htmlCode.substr(m.index + m[0].length);
if ((m2 = m[1].match(/src\s*=\s*(['"]?)([^'">\s]*)\1/i)) != null) {
input.unshift({src:m2[2]});
} else {
input.unshift({text:m[2]});
}
}
input.unshift(htmlCode);
input_stack.push(input);
if (timer == null) {
document.write = new_document_write;
document.writeln = new_document_writeln;
timer = setInterval(callback, 10);
}
}})();// loadBanner function.
var $ = function(id){
return document.getElementById(id);
};function loadBanner(str1,str2){
$(str1).innerHTML = $(str2).innerHTML;
$(str2).innerHTML = "";
}
</script> <BODY><table border="1" width="auto">
<tr><td>1</td></tr>
<tr><td> <div id="b1"> 1</div></td></tr>
<tr><td>2</td></tr>
<tr><td><div id="b2"> 2</div></td></tr>
<tr><td>3</td></tr>
<tr><td><div id="b3"> 3</div></td></tr>
<tr><td>4</td></tr>
<tr><td><div id="b4"> 4</div></td></tr>
<tr><td>5</td></tr>
<tr><td><div id="b5"> 5</div></td></tr>
</table>
对比两种显示方法,得出不能显示的根源
<script>//document.getElementById("b1").innerHTML = document.write("<script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'><\/script>");
setInnerHTML("b1","<script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'><\/script>");
</script>
</BODY>
</HTML>
文件如上,在文件末将banner显示出来,当图片banner时正常,flash时不正常,
功力不够,请高手帮助,分不够再加
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script language="javascript">var setInnerHTML = (function () {
var element_stack = [];
var input_stack = [];
var html_stack = [];
var timer = null;
var ua = navigator.userAgent.toLowerCase();
var isIE = (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0);
var old_document_write = document.write;
var old_document_writeln = document.writeln;
var loding_script = false;
var callback = function () {
if (loding_script) {
return;
}
if (element_stack.length == 0) {
clearInterval(timer);
timer = null;
document.write = old_document_write;
document.writeln = old_document_writeln;
return;
}
var index = element_stack.length - 1;
var input = input_stack[index];
if (input.length == 0) {
input_stack.pop();
var element = element_stack.pop();
var html = html_stack.pop();
element.innerHTML = '';
if (typeof beforeInsert == 'function') {
html = beforeInsert(html);
}
if (html.match(/<script([^>]*>)((.|\r|\n)*?)<\/script>/i) != null) {
setInnerHTML(element, html);
return;
}
if (isIE) {
html = '<div style="display:none">for IE</div>' + html;
element.innerHTML = html;
element.removeChild(element.firstChild);
} else {
element.innerHTML = html;
}
return;
}
var item = input[input.length - 1];
if (typeof item == 'string') {
html_stack[index] += item;
input.pop();
} else if (typeof item == 'object') {
if (item.src) {
loding_script = true;
var script = document.createElement('script');
script.src = item.src;
script.__index = index;
if (isIE) {
script.onreadystatechange = script_loaded;
} else {
script.onload = script_loaded;
}
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
}
if (item.text) {
var script = document.createElement('script');
script.text = item.text;
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
input.pop();
}
} else {
input.pop();
}
}
var script_loaded = function () {
if (isIE && this.readyState.toLowerCase() != "loaded" && this.readyState.toLowerCase() != "complete") {
return;
}
var index = this.__index;
input_stack[index].pop();
loding_script = false;
}
var new_document_write = function() {
for (var i = 0; i < arguments.length; i++) {
html_stack[element_stack.length - 1] += arguments[i];
}
}
var new_document_writeln = function () {
for (var i = 0; i < arguments.length; i++) {
new_document_write(arguments[i] + "\n");
}
}
return function (element, htmlCode) {// alert('element:' + element);
alert('htmlCode' + htmlCode); element_stack.push(element);
html_stack.push('');
var input = [];
while (true) {
if ((m = htmlCode.match(/<script([^>]*>)((.|\r|\n)*?)<\/script>/i)) == null) {
break;
}
input.unshift(htmlCode.substr(0, m.index));
htmlCode = htmlCode.substr(m.index + m[0].length);
if ((m2 = m[1].match(/src\s*=\s*(['"]?)([^'">\s]*)\1/i)) != null) {
input.unshift({src:m2[2]});
} else {
input.unshift({text:m[2]});
}
}
input.unshift(htmlCode);
input_stack.push(input);
if (timer == null) {
document.write = new_document_write;
document.writeln = new_document_writeln;
timer = setInterval(callback, 10);
}
}})();// loadBanner function.
var $ = function(id){
return document.getElementById(id);
};function loadBanner(str1,str2){
$(str1).innerHTML = $(str2).innerHTML;
$(str2).innerHTML = "";
}
</script> <BODY><table border="1" width="auto">
<tr><td>1</td></tr>
<tr><td> <div id="b1"> 1</div></td></tr>
<tr><td>2</td></tr>
<tr><td><div id="b2"> 2</div></td></tr>
<tr><td>3</td></tr>
<tr><td><div id="b3"> 3</div></td></tr>
<tr><td>4</td></tr>
<tr><td><div id="b4"> 4</div></td></tr>
<tr><td>5</td></tr>
<tr><td><div id="b5"> 5</div></td></tr>
</table>
对比两种显示方法,得出不能显示的根源
<script>//document.getElementById("b1").innerHTML = document.write("<script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'><\/script>");
setInnerHTML("b1","<script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'><\/script>");
</script>
</BODY>
</HTML>
文件如上,在文件末将banner显示出来,当图片banner时正常,flash时不正常,
功力不够,请高手帮助,分不够再加
setInnerHTML你这个是过滤了,FLASH是需要发代码才可以的,但是你一过滤,原本有点那段FLASH播放代码被去掉了,直接是播放不了的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script language="javascript"> var setInnerHTML = (function () {
var element_stack = [];
var input_stack = [];
var html_stack = [];
var timer = null;
var ua = navigator.userAgent.toLowerCase();
var isIE = (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0);
var old_document_write = document.write;
var old_document_writeln = document.writeln;
var loding_script = false;
var callback = function () {
if (loding_script) {
return;
}
if (element_stack.length == 0) {
clearInterval(timer);
timer = null;
document.write = old_document_write;
document.writeln = old_document_writeln;
return;
}
var index = element_stack.length - 1;
var input = input_stack[index];
if (input.length == 0) {
input_stack.pop();
var element = element_stack.pop();
var html = html_stack.pop();
element.innerHTML = '';
if (typeof beforeInsert == 'function') {
html = beforeInsert(html);
}
if (html.match(/ <script([^>]*>)((. ¦\r ¦\n)*?) <\/script>/i) != null) {
setInnerHTML(element, html);
return;
}
if (isIE) {
html = ' <div style="display:none">for IE </div>' + html;
element.innerHTML = html;
element.removeChild(element.firstChild);
} else {
element.innerHTML = html;
}
return;
}
var item = input[input.length - 1];
if (typeof item == 'string') {
html_stack[index] += item;
input.pop();
} else if (typeof item == 'object') {
if (item.src) {
loding_script = true;
var script = document.createElement('script');
script.src = item.src;
script.__index = index;
if (isIE) {
script.onreadystatechange = script_loaded;
} else {
script.onload = script_loaded;
}
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
}
if (item.text) {
var script = document.createElement('script');
script.text = item.text;
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
input.pop();
}
} else {
input.pop();
}
}
var script_loaded = function () {
if (isIE && this.readyState.toLowerCase() != "loaded" && this.readyState.toLowerCase() != "complete") {
return;
}
var index = this.__index;
input_stack[index].pop();
loding_script = false;
}
var new_document_write = function() {
for (var i = 0; i < arguments.length; i++) {
html_stack[element_stack.length - 1] += arguments[i];
}
}
var new_document_writeln = function () {
for (var i = 0; i < arguments.length; i++) {
new_document_write(arguments[i] + "\n");
}
}
return function (element, htmlCode) { // alert('element:' + element);
alert('htmlCode' + htmlCode); element_stack.push(element);
html_stack.push('');
var input = [];
while (true) {
if ((m = htmlCode.match(/ <script([^>]*>)((. ¦\r ¦\n)*?) <\/script>/i)) == null) {
break;
}
input.unshift(htmlCode.substr(0, m.index));
htmlCode = htmlCode.substr(m.index + m[0].length);
if ((m2 = m[1].match(/src\s*=\s*(['"]?)([^'">\s]*)\1/i)) != null) {
input.unshift({src:m2[2]});
} else {
input.unshift({text:m[2]});
}
}
input.unshift(htmlCode);
input_stack.push(input);
if (timer == null) {
document.write = new_document_write;
document.writeln = new_document_writeln;
timer = setInterval(callback, 10);
}
}})();
// loadBanner function.
var $ = function(id){
return document.getElementById(id);
}; function loadBanner(str1,str2){
$(str1).innerHTML = $(str2).innerHTML;
$(str2).innerHTML = "";
}
</script> <BODY> <table border="1" width="auto">
<tr> <td>1 </td> </tr>
<tr> <td> <div id="b1"> 1 </div> </td> </tr>
<tr> <td>2 </td> </tr>
<tr> <td> <div id="b2"> 2 </div> </td> </tr>
<tr> <td>3 </td> </tr>
<tr> <td> <div id="b3"> 3 </div> </td> </tr>
<tr> <td>4 </td> </tr>
<tr> <td> <div id="b4"> 4 </div> </td> </tr>
<tr> <td>5 </td> </tr>
<tr> <td> <div id="b5"> 5 </div> </td> </tr>
</table>
对比两种显示方法,得出不能显示的根源
<script>
alert(document.body.innerHTML)
document.getElementById("b1").innerHTML = document.write(" <script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'> <\/script>");
//setInnerHTML("b1"," <script language='JavaScript' type='text/javascript' src='http://ad.cn.doubleclick.net/adj/qa.eetchina.com/ARTICLE/Buffer_Storage;eepos=verticalbanner;ptile=1;sz=120x240;ua=CAT_626963_buffer-storage.HTM;ord=6073708313601899?'> <\/script>");
alert(document.body.innerHTML)
</script>
</BODY>
</HTML>
发的时候 用 工具栏上点 # 添加 html 代码
以免 发错
否则 我们从新去测试 累,说不定把方向都改错了
html = ' <div style="display:none">for IE </div>' + html;
//element.innerHTML = html;
//element.removeChild(element.firstChild);
//document.getElementById('b1').innerHTML='htmlCode' + html;
alert('htmlCode' + html);
} else {
element.innerHTML = html;
}
你这个变成这样你就清楚了,看看你用正则过滤只剩下href链接和图片地址,如果是FLASH的话,你过滤了只剩下FLASH的地址,你觉得只有FLASH地址,FLASH可以播放?平常FLASH是怎么才可以显示的?
难道只是FLASH地址?
还有//element.removeChild(element.firstChild); 这句话在IE中有错误
http://www.esmchina.com/
http://www.esmchina.com/script/BannerCommandLib.js