腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

网页中的复制、另存为、运行等JS代码的实现

0
回复
609
查看
[复制链接]

690

主题

704

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
31813
     紫钻仅向指定用户开放  
发表于 19-4-4 17:23:36 | 显示全部楼层 |阅读模式
1、格式化编辑器,也就是我说的执行js代码前的转义函数,也就是html反替换函数以下为引用的内容:
7 _' F2 _3 u" j, w& {
  1. function  reHtml(str) {; |. }: r4 d! {6 L0 x& k7 E(ww w.qiuqiufa.c om)* z; T1 z& X* p9 J
  2. var str = str.replace(/<br \/>/g, "").replace(/<BR>/g, "").replace(/<\/P>/g, "").replace(/<P>/g, "").replace(/ /g, "").replace(/&/g, "&").replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">");& a, K' Z5 t' u+ E$ _. _
  3. return str;* U  \( k% S( E1 D: K
  4. }: B. A* Y4 g0 R# M(w w w.qiuqiufa.co m)$ y" v1 }, X. Y9 y& D) }
复制代码
& B0 C% H; T. J
2、运行代码,原理很简单就是打开一个新窗口页面,写进代码; 以下为引用的内容:, ^& T3 U$ o1 m+ V9 G
  1. function runCode(obj) {
    0 a8 R; t2 a; |* z9 Y# G3 y! n. V+ w
  2.         var winname = window.open('', "_blank", '');- A6 g* o  g% @+ l(w ww.qiuqiufa.co m)& @, N) ]' {3 W
  3.         winname.document.open('text/html', 'replace');9 `- A$ W7 S" G" A: N% T5 f$ y(w w w.qiuqiufa.com)4 I0 O8 B% `2 b/ Y% x0 A
  4.      winname.opener = null // 防止代码对论谈页面修改& n, o2 m  C8 i  W(w w w.qiuqiufa.co m)
    ! T9 s" ]* S( h- t, K
  5.      var str = reHtml(obj.innerHTML);9 _( w2 q* u8 y# W3 B; J/ Y$ ?
  6.         winname.document.write(str);: r7 z/ w. f/ S# U' G/ y/ t(w ww.qiuqiu fa.c o  m)! S6 p! X9 g: b" f
  7.         winname.document.close();2 x: ^5 a# Q: e
  8. }
复制代码
, p% s# s( f6 u( H! X/ H
, v1 o- C" p4 a) B
3、复制代码,更简单 以下为引用的内容:% H0 P% i5 T7 I$ S5 K3 P  _
+ e0 _& z+ C0 J8 P2 q
  1. function doCopy(obj) {
    8 b, J% _6 Y0 e9 ^
  2.   var str = reHtml(obj.innerHTML);
    / D4 J" P. n4 n2 y
  3.         if (window.clipboardData.setData ("Text",str))0 \) p* S8 Q. Y% P8 l4 M) [
  4.           {8 |4 @) k9 @5 M5 z7 f$ W5 _  N(www.qiuqiufa.c om)
    ' w7 W& c5 {* i8 W( R9 p
  5.               alert('球球发提示:复制成功;');8 @* a* ?( _+ {+ X7 ]* k1 W1 ~
  6.           }! B7 {* n2 I* O2 p9 F" x" C
  7.         else
    5 M& V1 y2 x9 j; [$ N) ]8 H$ d
  8.           {
    * J: O* U# `: e0 s( }4 c4 R) |+ X
  9.               alert('球球发提示:复制失败;');" o5 S: v2 O5 @& I' l(www.qiu qiufa.c om)1 N5 a' a2 j  ^: [( d+ q) a
  10.           }( t2 x7 Y$ P% h( n1 \(w w w.qiu qiu fa.c om)
    ' q7 j3 q0 Z  l  P8 ~9 f$ S
  11. }) X9
复制代码
7 S9 O$ ^6 j$ O1 {2 ?4 u
4、另保存代码 以下为引用的内容:$ v% h* r- n: R
  1. function saveCode(obj) {, v3 z1 A& n5 l. X
  2.         var winname = window.open('', '_blank', 'top=10000');: z- j2 m0 T3 N8 H* f4 B) C(w w w.qiuqiufa.c om)
    # o3 H- H8 Z0 z9 _# Z; e' s
  3.         winname.document.open('text/html', 'replace');, L% m+ H3 }& X& |* o(w w w.qiu qiuf a.c om)
    $ C$ v$ k  F8 Z7 q. K4 @/ c
  4.   var str = reHtml(obj.innerHTML);
    9 v6 Z2 `- G) b! N
  5.         winname.document.write(str);+ ^" M7 K  j+ _2 k(w w w.qiuqiufa.c om)
    2 [! |( P0 d4 M0 j) n! r
  6.         winname.document.execCommand('saveas','','code.htm');/ T4 E, U. j5 c; q/ G- \(ww w.q iuqiufa.c om)' f8 c/ A4 h- L1 o, {, U  u' ~6 F0 L
  7.         winname.close();5 _# c" m5 X6 o(ww  w.qiuqiuf  a.c om)
复制代码

4 U4 b4 G* {. ?( S" A4 q) h0 d3 e2 h5 P, ?

qiuqiufa.com

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除