Fork me on GitHub

博文中加入代码演示

概述

今天看博客无意中看到这篇:如何获取鼠标选中的字。觉得末尾的代码演示真的很赞。看了一个后台,发现实现竟然很简单。所以把实现原理记录在这里,供自己开发时参考,相信对其他人也有用。

原理

原理就是打开一个新页面,然后把代码写入新页面里面就行了。

在博客首页的script里面加入如下函数:

<script>
    function runCode(id) {
        obj = document.getElementById(id);
        var TestWin = open(''); //打开一个窗口并赋给变量TestWin。 
        TestWin.opener = null // 防止代码对论谈页面修改 
        TestWin.document.write(obj.value); //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。 
        TestWin.document.close();
    }
</script>

在写的博文里面加入如下内容就完成了:

<textarea id="text_test" rows="10" cols="100">
//代码编辑区域
</textarea>

//运行代码按钮
<input onclick="runCode('text_test')" value="运行测试一下" type="button">

示例

后记

万恶的博客园为了防止js脚本注入,markdown编辑器的内容先转化为了字符串再转化为html的,这样就丢失了换行,所以上面的textarea里面的内容都没有换行。(害我找原因找了半天)(而且发布的时候,博客园还把script标签屏蔽了,我用转义字符才成功显示)

所以实际上我改了一下runCode函数,代码如下:

<script>
//运行代码按钮
    function runCode(id) {
        var obj = document.getElementById(id);
        var objValue = obj.value.split(/\s{2,}/).join(' \n '); //加上换行符
        var TestWin = open(''); //打开一个窗口并赋给变量TestWin。 
        TestWin.opener = null // 防止代码对论谈页面修改 
        TestWin.document.write(objValue); //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。 
        TestWin.document.close();
    }
</script>
posted @ 2018-02-09 23:30  馒头加梨子  阅读(300)  评论(0编辑  收藏  举报