• OI无关--关于侧边栏


    自己在比较闲的时候学了一点html和js,大概能写一些比较简单的东西了,于是就动起了侧边栏的念头。

    如果能在博客里加一个题目快速跳转也很兹磁啊。

    首先要选择题目,oj的名字肯定是不能直接输入,因为还有各种大小写,全拼或缩写的问题(如洛谷就有luogu,lgoj,lg等等的写法,不过大多数都是第一种吧)。所以这个一定是给出来一些选项,直接让你选。而题目ID一定是要自己输入的。判错就算了吧,反正跳错了也跟我没关系。

    那么我们在教程里找一找,还真的找到了这个东西,就是html里面一个叫表单的元素,里面有文本框,单选和复选,按钮,当然还有下拉框。语法大概就是这样的:

    <!--文本框-->
    <input type="text"></input>
    <!--下拉列表-->
    <select>
    	<option value=""></option>
    </select>
    <!--按钮-->
    <button type="button" onclick=""><button>
    

    于是我们就可以写出来下面的一些东西了:

    <div>
    	<p>各大OJ快速跳转</p> 
    	<form name="OJ" >
    		<select name="OnlineJudge" id="OnlineJudge">
    			<option value="BZOJ">BZOJ</option>
    			<option value="LUOGU">LUOGU</option>
    			<option value="POJ">POJ</option>
    			<option value="HDU">HDU</option>
    			<option value="UOJ">UOJ</option>
    			<option value="Codeforces">Codeforces</option>
    			<option value="UVA">UVA</option>
    			<option value="SPOJ">SPOJ</option>
    			<option value="ZOJ">ZOJ</option>
    		</select>
    		<input type="text" name="pid" id="pid"></input>
    		<button type="button" onclick="goto()">跳转</button>
    	</form>
    </div>
    

    这样,就差上js代码了。

    然后当然是申请js权限啊,这个一般都是给过的。

    然后再参考baidu,得知页面跳转用的是window.open()函数,那么就可以这么写:

    <script>
    	function goto() {
    		var tempp=document.getElementById("test");
    		tempp.innerHTML="zhy %%%";
    		var ojname=document.getElementById("OnlineJudge").value;
    		var temp=document.getElementById("pid").value;
    		if(temp=="") {
    			tempp.innerHTML("请输入题目id");
    			return ;
    		}
    		if(ojname=="BZOJ") window.open("https://www.lydsy.com/JudgeOnline/problem.php?id="+temp);
    		if(ojname=="LUOGU") window.open("https://www.luogu.org/problemnew/show/P"+temp);
    		if(ojname=="POJ") window.open("http://poj.org/problem?id="+temp);
    		if(ojname=="HDU") window.open("http://acm.hdu.edu.cn/showproblem.php?pid="+temp);
    		if(ojname=="SPOJ") window.open("http://www.luogu.org/problemnew/show/SP"+temp);
    		if(ojname=="UVA") window.open("http://www.luogu.org/problemnew/show/UVA"+temp);
    		if(ojname=="Codeforces") window.open("http://www.luogu.org/problemnew/show/CF"+temp);
    		if(ojname=="ZOJ") window.open("http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode="+temp);
    		if(ojname=="UOJ") window.open("http://uoj.ac/problem/"+temp);
    	}
    </script>
    

    (那句%%%就当没看见了,只是测试用的)

    然而,我们把这段代码加上,并没有什么反应,审查一下元素,就可以发现,这里面的js代码怎么意外失踪了呢?

    然后我联系了一下博客园团队,答复是js代码限制不多,但是不能是恶意代码。

    恶意代码!

    可能window.open()就被ban掉了吧。。

    这怎么办啊,估计所有的页面跳转都是恶意代码,这不是就没法实现了吗?

    你再想想,恶意代码检查肯定是在你填的东西里面检查,那如果你的代码没在填的东西里面,那不就查不到了吗?

    然而还有一个问题,就是你还要找个地方把你的代码放上,那怎么找呢?

    我们发现,博客园本身就可以发文件啊,那么我们把文件传上,然后把地址弄过去,然后就好了。。

    本蒟蒻还是太菜了啊,这么简单的东西竟然还花了一个星期,如果有js大佬轻喷啊。

  • 相关阅读:
    jms学习笔记
    UML类图与类的关系详解
    javolution学习--介绍
    Eclipse中10个最有用的快捷键组合
    [疯狂Java]JDBC:PreparedStatement预编译执行SQL语句
    Oracle OLAP 与 OLTP 介绍
    DRDS SQL兼容性
    DRDS 概述
    跨时代的分布式数据库 – 阿里云DRDS详解(转)
    java.net.UnknownHostException: www.terracotta.org
  • 原文地址:https://www.cnblogs.com/shanxieng/p/10166862.html
Copyright © 2020-2023  润新知