[JavaScript]迫害你的绒布球

发布于 2020-03-28  682 次阅读


万恶之源

夏姐是一只大鸽子,也是窝的老婆。那么,如何迫害夏姐呢?

未雨绸缪

夏姐还没有上线他的友链页面,但是夏姐的IDEA埋下了罪恶的种子。

众所周知,全世界除了MoeDev都会写JavaScript。JavaScript的HTML DOM对象中提供了 document.referrer 函数,可以返回载入当前文档的来源文档的URL。

伪代码

定义变量 夏=document.referrer
    如果 夏是https://blog.moelibs.com/
        提示 夏姐是我的绒布球哦

实践

在页脚中插入如下js

<script type="text/javascript">
    var forxia = document.referrer;
    if (forxia == "https://blog.moelibs.com/" )
        alert('夏姐是我的老婆哦');
</script>

测试

访问夏姐的博客

用F12,把任意超链接改为https://moedev.net/

点击后出现弹窗

测试大成功

进阶I

可是窝萌不知道夏姐将来会把友链页放在哪里,又不知道夏姐会不会调皮,怎么办呢?

JavaScript提供了 indexOf函数,可以让我们查找某段String值在String中出现的位置,那么窝萌就有了解决方案

<script type="text/javascript">
    var forxia = document.referrer;
    if (forxia.indexOf("moelibs.com") > -1)
        alert('夏姐是我的老婆哦');
</script>

解析:如果字符串中含有moelibs.com,则返回其位置值。如果没有,则返回-1

这样,夏姐的moelibs.com&*.moelibs.com来到MoeDev.Net都会触发条件

进阶II

alert弹窗的时候,网页不会加载,甚至会影响夏姐访问MoeDev.Net的速度,信じられない!那么就来解决这个问题吧

因为代码放在其他js前面,导致确认后其他代码才会加载,但是窝又懒得改位置(大雾),那么就让夏姐睡一会再被迫害吧

<script type="text/javascript">
    setTimeout(10000)
    var forxia = document.referrer;
    if (forxia.indexOf("moelibs.com") > -1)
        alert('夏姐是我的老婆哦');
</script>

进阶III

alert在某些浏览器上太丑了呢。。。该如何优雅的宣告夏姐是窝的老婆呢?

<!--未完待续-->

结语

如此以来,夏姐就被MoeDev彻彻底底的迫害了(悲)

如果你萌康到了这篇文脏,千万不要告诉她,疫情过后来找MoeDev领一顿免费烤肉!

于2020/03/28 由MoeDev羞耻值爆炸后 红着脸编撰而成