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

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

1
回复
1199
查看
[复制链接]

761

主题

775

帖子

3万

积分

董事

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

积分
32840
发表于 19-4-4 17:23:36 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
1、格式化编辑器,也就是我说的执行js代码前的转义函数,也就是html反替换函数以下为引用的内容:
, z; _  m6 e  U6 e
  1. function  reHtml(str) {; |. }: r4 d! {6 L0 x& k7 E(ww w.qiuqiufa.c om)
    ' o! b  |: i0 j/ Z/ Q. q* P/ v
  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, ">");
    * c) c: m/ ]% v3 k* K0 ?2 J
  3. return str;) X- ^9 I5 r' m7 C
  4. }: B. A* Y4 g0 R# M(w w w.qiuqiufa.co m)
    + b2 D! I% \& h' {6 v5 t* G! w" J
复制代码

, q1 f5 q+ P( q  l2、运行代码,原理很简单就是打开一个新窗口页面,写进代码; 以下为引用的内容:
9 T* U3 o+ p1 v& ^
  1. function runCode(obj) {
    5 y6 z9 n$ y0 u5 b+ h  m
  2.         var winname = window.open('', "_blank", '');- A6 g* o  g% @+ l(w ww.qiuqiufa.co m)3 w/ @/ G) @" w" [
  3.         winname.document.open('text/html', 'replace');9 `- A$ W7 S" G" A: N% T5 f$ y(w w w.qiuqiufa.com)
      J0 O; \6 N2 M8 \
  4.      winname.opener = null // 防止代码对论谈页面修改& n, o2 m  C8 i  W(w w w.qiuqiufa.co m)9 t' U2 x7 l2 X" R6 w. l6 b
  5.      var str = reHtml(obj.innerHTML);, E7 L- p  Z, G/ x. ~9 o+ Y& ?2 ^
  6.         winname.document.write(str);: r7 z/ w. f/ S# U' G/ y/ t(w ww.qiuqiu fa.c o  m). Q  R3 E6 T$ s
  7.         winname.document.close();5 k" \1 ?2 f, o$ L  o( a1 o% N+ }
  8. }
复制代码
0 t( @1 m, P3 N, b# s( Y- U

$ f1 m4 e) r* V* v* g3、复制代码,更简单 以下为引用的内容:  Z+ M! \) s* r% R9 W

! d# |7 L1 @: C
  1. function doCopy(obj) { ; \' e1 q  F' A4 t
  2.   var str = reHtml(obj.innerHTML);) o$ @' p! i- ^/ x4 {
  3.         if (window.clipboardData.setData ("Text",str))% |0 f5 q; g. K9 Z
  4.           {8 |4 @) k9 @5 M5 z7 f$ W5 _  N(www.qiuqiufa.c om)' L8 |- f; K8 y; E
  5.               alert('球球发提示:复制成功;');% r: y4 r8 H1 P& y/ c& O
  6.           }; `* ^7 ^( i0 L8 n/ y6 q( z5 L
  7.         else# o' Z6 X; \7 I4 g9 P
  8.           {
    4 s( F: E' U" e+ b
  9.               alert('球球发提示:复制失败;');" o5 S: v2 O5 @& I' l(www.qiu qiufa.c om). v/ T+ V7 a7 I& Q1 U' D9 ~
  10.           }( t2 x7 Y$ P% h( n1 \(w w w.qiu qiu fa.c om)) [( ], s( Z' y+ e7 _, ^
  11. }) X9
复制代码
$ a; f; ?! Q$ M, F! y8 k, q3 ]+ c
4、另保存代码 以下为引用的内容:
$ V2 ]+ A% {' H0 [
  1. function saveCode(obj) {
    8 y9 h7 k0 ]7 z2 B
  2.         var winname = window.open('', '_blank', 'top=10000');: z- j2 m0 T3 N8 H* f4 B) C(w w w.qiuqiufa.c om)* s* l+ q$ h7 _- c
  3.         winname.document.open('text/html', 'replace');, L% m+ H3 }& X& |* o(w w w.qiu qiuf a.c om)5 W" q; O4 K! w# e5 V! @
  4.   var str = reHtml(obj.innerHTML);6 g$ g5 c1 N+ x2 d( C# e+ G/ v
  5.         winname.document.write(str);+ ^" M7 K  j+ _2 k(w w w.qiuqiufa.c om), Y2 x4 }! @# ?. o
  6.         winname.document.execCommand('saveas','','code.htm');/ T4 E, U. j5 c; q/ G- \(ww w.q iuqiufa.c om)
    ' Q# H/ _6 e0 x/ X. I8 A
  7.         winname.close();5 _# c" m5 X6 o(ww  w.qiuqiuf  a.c om)
复制代码

9 g% s6 ~/ ]3 n, R7 d
; ~! s  f' c7 F0 T$ Z4 W& F# s

0

主题

6

帖子

4

积分

1°伸手党

Rank: 2

积分
4
发表于 19-10-14 13:25:28 | 显示全部楼层         
找到好贴不容易,我顶你了,谢了
回复

使用道具 举报

网站简介

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