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大佬轻喷啊。
OI无关--关于侧边栏的更多相关文章
- 余秋雨的话(与OI无关)
余秋雨的话 1.假如你想要一件东西,就放它走.它若能回来找你,就永远属于你:它若不回来,那根本就不是你的. 2. 一个人会落泪,是因为痛:一个人之所以痛,是因为在乎:一个人之所以在乎,是因为有感觉:一 ...
- 日记(OI 无关,文化课无关)
2019.11.13 今天在研究 wss 的代码为什么比我快那么多. 看见他定义了一个结构体叫 thxorz,一定是因为 orz 了 thx 得到了信仰加成了. 然后刚说完这句话就看见 thx 走了进 ...
- 2019 OI日记
// 我觉得记日记是个好习惯吧 毕竟指不定哪天就学不下去了 就AFO了 就没有梦了 // [置顶]活跃于你谷普及训练场.ybt(没底气说全部).loj(提高基础部分) //优先级从前往后 因为 ...
- LCA专题
标签(空格分隔): LCA 我的个人网站挂了,最近就先用这个来写博客吧.以后争取在这个网站写一些与OI无关的个人爱好的东西. 题目来源:code[VS] 倍增--在线算法 用 $f[i][j]$ 记录 ...
- 近期概况&总结
下午考完英语的学考就要放假啦,是衡中的假期啊QAQ 所以灰常的激动,一点也不想写题(我不会告诉你其实假期只有一个晚上.. 自从CTSC&APIO回来之后就一直在机房颓颓颓,跟着zcg学了很多新 ...
- CTSC2016&&APIO2016游记
4.30 下午衡中放假,我们因为比赛的缘故提前到中午12:00放假 然后我爸爸说要来接我,直到下午两点多他才到,然后衡中宿舍的楼管阿姨死活不给我开门 莫名其妙的等到了三点多快四点的时候我才跟实验班的一 ...
- WC2019 划水记
写在前面: 本篇是擅长咕咕咕的\(\text{BLUESKY007}\)同学难得不咕写的游记,将会记录\(WC2019(2019.1.24(Day\ 0)\sim2019.1.30(Day\ 6))\ ...
- 2017FJ省队集训 游记
2017FJ省队集训 游记 又是一篇流水账 Day 1 今天是省队集训的第一天.早上骑车去八中,到的时候汗流太多浑身湿透被杨哥哥和runzhe2000 d了,一个说我去游泳了一个说我打球了...流完汗 ...
- 【扯淡篇】SDOI2018丶一轮游丶记
--某不知名蒟蒻的SDOI2018 R1退役场游记&&OI生涯总结 真的是混不下去了. 进队是不可能的, 进队是不可能进队的. 这辈子不可能进队的. 刷题又不会刷 就是靠打表找规律这种 ...
随机推荐
- 常用的windows注册表大全
目录 使系统没有“运行”选项 1让操作系统无“关闭系统” 选项 2让操作系统无“注销”选项 ...
- ifconfig 查看网卡信息
[root@linux-node- sss]# ifconfig eno16777736: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu inet ...
- 划分LUN
划分LUN http://mp.weixin.qq.com/s?__biz=MzAwNzU3NzQ0MA==&mid=209842199&idx=1&sn=7d77fdf7a8 ...
- [vue]vue-cli下载原理
正常vue-cli这样操作就ok了 vue-cli github $ npm install -g vue-cli $ vue init webpack my-project $ cd my-proj ...
- AngularJs 1.x和AngularJs2的区别
AngularJS 2 尽管还在Alpha阶段,但主要功能和文档已经发布.让我我们了解下Angular 1 和 2 的区别,以及新的设计目标将如何实现. 1.从移动app开发上面分析: Angula ...
- git的使用(包括创建远程仓库到上传代码到git的详细步骤以及git的一些常用命令)
A创建远程仓库到上传代码到git 1)登陆或这注册git账号 https://github.com 2)创建远程仓库 3)打开终端输入命令 cd到你的本地项目根目录下,执行如下git命令 git in ...
- GUN C中的attribute
GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和 ...
- Detour的简单使用
Detours的安装:下载部分:1.直接在百度搜"detour",进对应的网站下载.2.或以下链接https://www.microsoft.com/en-us/research/ ...
- 【Redis学习之一】Redis
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 一.Redis入门介绍 数据存储的发展:文件存储--> ...
- 页面点击,不是a标签也会刷新原因
页面点击,不是a标签也会刷新原因 点击事件冒泡,触发了a链接导致整个页面刷新了.直接阻止 事件冒泡即可 例子: $("tr .am-text-danger").click(func ...