博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客园js
阅读量:6218 次
发布时间:2019-06-21

本文共 4087 字,大约阅读时间需要 13 分钟。

博客园可以申请js权限,给管理员发封邮件就可以了.

一旦控制了js,就控制了整个DOM树.CSS和JS都可以从外部引入(比如github).也可以把js和css放在博客园的文件中再引入.如果js和css代码较少,可以直接写在"管理"页中.

引入github上的js:链接为https://raw.githubusercontent.com/weidiao/myCode/master/cnblog.js,报错"strict MIME type checking is enabled",解决方法把链接改成https://rawgit.com/weidiao/myCode/master/cnblog.js

因为raw.githubusercontent.com在Response中设置了X-Content-Type-Options:nosniff ,告诉浏览器强制检查资源的MIME,进行加载。

MIME类型检查是一种安全机制.

经过试验,rawgit是有延迟的,也就是说github上变了之后,rawgit不会马上跟着变,有可能是rawgit服务器使用了缓存.这样就使得很难调试自己的DOM操作是否正确,最好的解决方法是,找一个服务器上放一个最简单的Servlet,get方法用来获取,post方法用来更改

@WebServlet("/Main")public class Main extends HttpServlet {    String s = "";    protected void doGet(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        response.getWriter().print(s);    }    protected void doPost(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        s = request.getParameter("data");    }}

然后编一段java代码来向服务器提交cnblog.js文件

public class Main {    static String url = "http://182.254.156.22:8080/cnblog/Main";    public static void main(String[] args)            throws ClientProtocolException, IOException {        Scanner cin = new Scanner(System.in);        while (cin.hasNext()) {            cin.nextLine();            String s = new String(Files.readAllBytes(Paths.get("cnblog.js")));            System.out.println(s);            Request.Post(url).bodyForm(new BasicNameValuePair("data", s))                    .execute();        }        cin.close();    }}

需要在博客园的管理页面从CDN引入bootstrap和jquery,这两个引入都只能写在<body>中,而无法写在<head>中.其中引入jquery的原因是博客园自带的jquery有点老,可能有些函数无法使用,这样引入并不会报任何错误.

上面布置好之后,就可以一边编一边调试了,最后代码如下

function code(className) {    $('.' + className).each(function() {        var txt=$(this).text()        if(txt.charCodeAt(0)==10)txt=txt.substr(1)        var pre = $('
').text(txt)        $(this).removeClass(className)        $(this).empty()        $(this).append(pre)        $(pre).css({            'font-family' : 'Consolas',            'font-size' : '16px'        })    })}$(document)        .ready(                function() {                    // 导航栏                    var userName = $("#blogTitle h1").text(), remark = $(                            "#blogTitle h2").text()                    $("#blogTitle").remove()                    var navbarHeader = $("
") $(navbarHeader) .append( $("" + userName + "")).append( $("" + remark + "")) $("body").css({ "padding-top" : "50px", "font-size" : "16px", "font-family" : "serif" }) $("#home").attr("class", "container") $("#navigator").attr("class", "navbar navbar-inverse navbar-fixed-top").prepend( navbarHeader) $("#navigator #navList").attr("class", "nav navbar-nav") var blogStatsStr = $(".blogStats").children().text() $(".blogStats").remove() $("#navigator").append( $("

").text(blogStatsStr).attr("class", "navbar-text navbar-right").css("padding-right","20px")) // main $("#main").addClass("row") $("#mainContent").addClass("col-md-9") $("#sideBar").addClass("col-md-3") //sidebar,异步加载 //$("#sideBar ul").addClass("list-group") //$("#sideBar ul li").addClass("list-group-item") // 代码高亮 var first = 'cnblogs_code', second = 'cnblogs_Highlighter' code(first) code(second) })

上面代码包括,对导航栏的调整,对main块使用bootstrap的十二列布局(主要内容占9格,侧边栏占3格),对代码样式做了调整,使用了最简单的pre标签方式.

你可能感兴趣的文章
关于集成抽取进程重启后的现象分析
查看>>
56.如何清除已经设置的npm config配置
查看>>
028——VUE中事件修饰符once
查看>>
FineUIPro v5.1.0 发布了!
查看>>
easyui的日期控件
查看>>
[WPF 容易忽视的细节] —— Exception in WPF's Converter
查看>>
网易严选的wkwebview测试之路
查看>>
Dubbo高可用
查看>>
折叠代码块 C#中用 #region和#endregion java中用 //region和//endregion
查看>>
高性能mysql学习笔记
查看>>
[ffmpeg] 音频样本
查看>>
jQuery 3D圆盘旋转焦点图 支持鼠标滚轮
查看>>
非常实用全面的 C++框架,库类等资源
查看>>
VS Code 常用插件
查看>>
kubectl top查看k8s pod的cpu , memory使用率情况
查看>>
fputs
查看>>
手写代码生成器
查看>>
SQL Server 维护计划备份主分区
查看>>
VS2008的安装,OpenCV2.1的安装,以及变量环境的设置
查看>>
Unable to install breakpoint in XXX due to missing line number attributes的解决
查看>>