站长 自执行函数表达式和百度防盗站
程序员文章站
2022-06-16 15:28:19
...
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>自执行函数表达式</title> </head> <body> <!-- 这种叫自执行函数表达式 在这种情况下,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。 // 下面2个括弧()都会立即执行 (function () { /* code */ } ()); // 推荐使用这个 (function () { /* code */ })(); // 但是这个也是可以用的 // 由于括弧()和JS的&&,异或,逗号等操作符是在函数表达式和函数声明上消除歧义的 // 所以一旦解析器知道其中一个已经是表达式了,其它的也都默认为表达式了 var i = function () { return 10; } (); true && function () { /* code */ } (); 0, function () { /* code */ } (); // 如果你不在意返回值,或者不怕难以阅读 // 你甚至可以在function前面加一元操作符号 !function () { /* code */ } (); ~function () { /* code */ } (); -function () { /* code */ } (); +function () { /* code */ } (); --> <script type="text/javascript"> var i = function(){ document.writeln('阅谁问群诵,水落清香浮'); return 10; }(); (function(){ document.writeln('一站式共享网络');}()); +function(){ document.writeln('onestopweb.cn');}(); </script> </body> </html>
效果图:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>百度防盗站</title> <script type="text/javascript"> !function(){ try { //我的域名,网站被别人盗了,他只要没删除这段代码,还会跳回我的网站 var chdmi = ['o','n','e','s','t','o','p','w','e','b','.','i','t','e','y','e','.','c','o','m'].join(''); var chreg = eval('/' + chdmi.replace(/\./g, '\\.') + '/i'); //如果是百度来的,跳转回我的域名对应的链接,只对百度有效 if (!chreg.test(location.href) && /baidu/i.test(document.referrer)) { location.href = 'http://' + chdmi + location.pathname + location.search + location.hash; } else {} } catch(e) {} } (); </script> </head> <body> <h3>阅谁问君诵,水落清香浮。</h3> </body> </html>
效果图:
从百度进来,如果不是对应的域名会跳转到指定的域名,例如:http://onestopweb.iteye.com/
理都懂,然并卵。因为只要细心查看,就发现问题所在。