【编程游戏】网页版脚本输出自己。
比如:
- C/C++ code
main(){char q=34,n=10,*a="main(){char q=34,n=10,*a=%c%s%c;printf(a,q,a,q,n);}%c";printf(a,q,a,q,n);}
有一个网站专门收集这类代码-》传送门
历史发起的帖子(C#)传送门
要求:
1、htm文件;
2、浏览器中输出源文件一样,包括大小写、标点符号;
3、兼容IE6+、FF、Chrome。
奖励:
1、第一个完成,加20分;
2、源文件最短,加100分;
3、之前没有使用过的方法,加10分
下周一结贴给分。
模板:
- HTML code
<script>/* todo */</script>
谢谢关注。
[解决办法]
- JScript code
<script>var httpRequest=function(){ var xmlHttp=false; try{ xmlHttp = new XMLHttpRequest(); } catch(trymicrosoft){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(othermicrosoft){ try{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")} catch(failed){} } } return xmlHttp;};var ajaxGet=function(url,functionCallback){ var xmlHttp = httpRequest(); xmlHttp.open("get",url,true); xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState == 4&&xmlHttp.status == 200){ functionCallback(xmlHttp); } }; xmlHttp.send(null);};window.onload=function(){ ajaxGet(window.location.href, function(xmlHttp){ var str=xmlHttp.responseText; var reg=new RegExp("<([^>]+)>","img"); str=str.replace(reg,"<$1>"); document.body.innerHTML=str; } );};</script>
[解决办法]
zswang
你的代码运行不通过,哇哈哈!
没有考虑页面加载的问题
[解决办法]
我来一个
- JScript code
function encode(v){return v.replace(/</g,'<');}window.onload=function(){ var pre=document.createElement('pre'); pre.innerHTML=typeof(HTMLElement) != "undefined"? encode(document.createElement("DIV").appendChild(document.documentElement.cloneNode(true)).parentNode.innerHTML):encode(document.documentElement.outerHTML); document.body.appendChild(pre);}
[解决办法]
- HTML code
<script type="text/javascript"> window.onload=function() { var arrcontrol=document.getElementsByTagName("script")[0]; document.write(arrcontrol.parentNode.innerHTML.replace(/</g,"<").replace(/>/g,">")) };</script>
[解决办法]
[解决办法]
借楼上的构思。
- JScript code
<script language="javascript">var a=[];a[0]='script',a[1]='<',a[2]='>';document.write(document.getElementsByTagName('script')[0].parentNode.innerHTML.replace(/(script|SCRIPT)/g,a[0]).replace(/&/g,'&').replace(/</g,a[1]).replace(/>/g,a[2]));</script>
------解决方案--------------------
改了一下,刚没想清this的指向。
- JScript code
(s = function () { (function (b) {document.write('(' + b.s + ')()')})(window); })()
[解决办法]
顶起来。。。
伴水兄多给两分!!!
[解决办法]
[解决办法]
依然用innerHTML取内容,用一个别的编码方法,
- JScript code
d = document;str=d.getElementsByTagName('script')[0].parentNode.innerHTML;t = d.createElement("div");(t.textContent != undefined) ? (t.textContent = str) : (t.innerText = str);d.write(t.innerHTML);
[解决办法]
重发一下,忘写外边标签了。
- JScript code
<script language="javascript" >d = document;str=d.getElementsByTagName('script')[0].parentNode.innerHTML;t = d.createElement("div");(t.textContent != undefined) ? (t.textContent = str) : (t.innerText = str);d.write(t.innerHTML);//(s = function(){document.write('(s = ' + window.s + ')()')})()</script>
[解决办法]
我也来一个,主要是接分。
- JScript code
<script>document.write("<script>"+document.scripts[0].innerHTML.replace(/&/ig,"&")+"</script>")</script>
[解决办法]
这样? ^_^
- JScript code
<script>+function(){var r = /(<script>)([\s\S]*?)(<\/script>)/i;var s = document.documentElement.innerHTML.match(r)[0];var ret = s.replace(r,function(a,b,c,d){return b.toLowerCase()+c+d.toLowerCase()});alert(ret);}();</script>
[解决办法]
<script type="text/javascript" id="my">
(function(){alert(document.getElementById("my").innerHTML)})();
</script>
[解决办法]
我也来一个吧.....
- JScript code
<script type="text/javascript">//我也来一个吧。^_^(function(){ var obj = document.getElementsByTagName("script"); document.write(obj[obj.length-1].parentNode.innerHTML.replace(/<([^>]+)>/g, "<$1>").replace(/\n/g,"<br/>").toLowerCase())//你看我输出自己输出自己——})();</script>
[解决办法]
纠正:
- JScript code
<script type="text/javascript">//我也来一个吧。^_^(function(){ var obj = document.getElementsByTagName("script"); document.write(obj[obj.length-1].parentNode.innerHTML.replace(/<([^>]+)>/g, function($1,$2){return "<"+$2.toLowerCase()+">"}).replace(/\n/g,"<br/>"))//我输出自己输出自己——})();</script>
[解决办法]
发表不成,说有“非法字符”。只好去我的Blog里看了。
http://blog.csdn.net/KiteGirl/archive/2010/06/07/5652091.aspx
[解决办法]
- JScript code
<script id='a'>document.write(document.getElementById('a').innerHTML)</script>