自己在比较闲的时候学了一点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大佬轻喷啊。

OI无关--关于侧边栏的更多相关文章

  1. 余秋雨的话(与OI无关)

    余秋雨的话 1.假如你想要一件东西,就放它走.它若能回来找你,就永远属于你:它若不回来,那根本就不是你的. 2. 一个人会落泪,是因为痛:一个人之所以痛,是因为在乎:一个人之所以在乎,是因为有感觉:一 ...

  2. 日记(OI 无关,文化课无关)

    2019.11.13 今天在研究 wss 的代码为什么比我快那么多. 看见他定义了一个结构体叫 thxorz,一定是因为 orz 了 thx 得到了信仰加成了. 然后刚说完这句话就看见 thx 走了进 ...

  3. 2019 OI日记

    //  我觉得记日记是个好习惯吧 毕竟指不定哪天就学不下去了 就AFO了 就没有梦了   // [置顶]活跃于你谷普及训练场.ybt(没底气说全部).loj(提高基础部分)  //优先级从前往后 因为 ...

  4. LCA专题

    标签(空格分隔): LCA 我的个人网站挂了,最近就先用这个来写博客吧.以后争取在这个网站写一些与OI无关的个人爱好的东西. 题目来源:code[VS] 倍增--在线算法 用 $f[i][j]$ 记录 ...

  5. 近期概况&总结

    下午考完英语的学考就要放假啦,是衡中的假期啊QAQ 所以灰常的激动,一点也不想写题(我不会告诉你其实假期只有一个晚上.. 自从CTSC&APIO回来之后就一直在机房颓颓颓,跟着zcg学了很多新 ...

  6. CTSC2016&&APIO2016游记

    4.30 下午衡中放假,我们因为比赛的缘故提前到中午12:00放假 然后我爸爸说要来接我,直到下午两点多他才到,然后衡中宿舍的楼管阿姨死活不给我开门 莫名其妙的等到了三点多快四点的时候我才跟实验班的一 ...

  7. WC2019 划水记

    写在前面: 本篇是擅长咕咕咕的\(\text{BLUESKY007}\)同学难得不咕写的游记,将会记录\(WC2019(2019.1.24(Day\ 0)\sim2019.1.30(Day\ 6))\ ...

  8. 2017FJ省队集训 游记

    2017FJ省队集训 游记 又是一篇流水账 Day 1 今天是省队集训的第一天.早上骑车去八中,到的时候汗流太多浑身湿透被杨哥哥和runzhe2000 d了,一个说我去游泳了一个说我打球了...流完汗 ...

  9. 【扯淡篇】SDOI2018丶一轮游丶记

    --某不知名蒟蒻的SDOI2018 R1退役场游记&&OI生涯总结 真的是混不下去了. 进队是不可能的, 进队是不可能进队的. 这辈子不可能进队的. 刷题又不会刷 就是靠打表找规律这种 ...

随机推荐

  1. Python之Pandas使用教程(转)

    https://blog.csdn.net/XiaoYi_Eric/article/details/79506660

  2. 【Python】百度贴吧-中国好声音评论爬爬【自练OK-csv提取格式及评论提取空格等问题待改进】

    代码编写思路: 学习知识点: 1.class=a b(a假设是字体-宋体,b是颜色-蓝色:class中可以同时有两个参数a,b(宋体+蓝色),两者用空格隔开即可) 2.拓展1:想要soup到某个元素, ...

  3. iOS入门怎样选择Swift和objective-c

    版权声明:本文为博主原创文章,未经博主同意不得转载.博主微信:lofocus https://blog.csdn.net/cuibo1123/article/details/28261795 学oc吧 ...

  4. SeaJS 与 RequireJS 的差异对比

    这篇文章主要介绍了SeaJS 与 RequireJS 的差异对比,本文主要对CMD规范和AMD规范的弊端做了对比,并做出了一个总结,需要的朋友可以参考下 “历史不是过去,历史正在上演.随着 W3C 等 ...

  5. 使用浏览器,调试js代码

    1:创建html网页和js文件 <!doctype html> <html> <head> <meta charset="utf-8"&g ...

  6. redis 在windows 上面的安装和使用,集群搭建

    redis作为nosql数据库,将数据存储到内存中(缓存),具有非常高的性能.下面讲解一下redis的安装及java api的使用. 1:redis 安装 windows 上面直接下载msi文件,安装 ...

  7. Spark ClassNotFoundException $$anonfun$2

    Spark ClassNotFoundException $$anonfun$2 1. 软件环境: 软件 版本 Spark 原生1.6.0 Hadoop 原生2.6.5 2. 应用场景&问题描 ...

  8. POJ:1182 食物链(带权并查集)

    http://poj.org/problem?id=1182 Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1 ...

  9. zabbix3.0 centos7 yum 安装与简单配置

    参考文档https://www.zabbix.com/documentation/3.0/start zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zab ...

  10. [LeetCode] 561. Array Partition I_Easy tag: Sort

    Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...