zoukankan      html  css  js  c++  java
  • 博文中加入代码演示

    概述

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

    原理

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

    在博客首页的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(' 
     '); //加上换行符
            var TestWin = open(''); //打开一个窗口并赋给变量TestWin。 
            TestWin.opener = null // 防止代码对论谈页面修改 
            TestWin.document.write(objValue); //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。 
            TestWin.document.close();
        }
    </script>
    
  • 相关阅读:
    vs2010 怎样设置文本编辑窗口和解决方案资源管理器同步?
    google浏览器如何导出书签
    C#面试题
    Inkscape tricks
    jupyter-notebook kernel died
    matplotlib 显示中文
    Ubuntu+apt-get update时的源
    vscode设置出错, 无法自动补全
    Ubuntu+vscode打不开
    Ubuntu+Firefox总是打不开网页
  • 原文地址:https://www.cnblogs.com/yangzhou33/p/8435857.html
Copyright © 2011-2022 走看看