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

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

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

765

主题

779

帖子

3万

积分

董事

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

积分
33029
发表于 19-4-4 17:23:36 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
1、格式化编辑器,也就是我说的执行js代码前的转义函数,也就是html反替换函数以下为引用的内容:
: V- i% `2 t$ r1 [3 ~9 b5 d/ Q3 T
  1. function  reHtml(str) {; |. }: r4 d! {6 L0 x& k7 E(ww w.qiuqiufa.c om)
    2 O- E) f$ l( j5 w. y
  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, ">");
    * r/ F5 H! z! M- q" |
  3. return str;
    ( o: z) E! w  a" Q5 T
  4. }: B. A* Y4 g0 R# M(w w w.qiuqiufa.co m)9 Y% ?7 V* M- _& K# H6 O
复制代码

  _" p- \& p  C$ s, R2、运行代码,原理很简单就是打开一个新窗口页面,写进代码; 以下为引用的内容:" z/ L: z$ \; {) `8 R, r; r! G) y
  1. function runCode(obj) {7 H3 v3 f8 o) F# v2 _& O% c4 e9 ~  \* I
  2.         var winname = window.open('', "_blank", '');- A6 g* o  g% @+ l(w ww.qiuqiufa.co m)$ b  ^9 q$ O0 N. R# ], I) C
  3.         winname.document.open('text/html', 'replace');9 `- A$ W7 S" G" A: N% T5 f$ y(w w w.qiuqiufa.com)' W2 k0 p, x2 c" ?
  4.      winname.opener = null // 防止代码对论谈页面修改& n, o2 m  C8 i  W(w w w.qiuqiufa.co m)( J4 x+ ~0 [% r+ Y) o) k
  5.      var str = reHtml(obj.innerHTML);
    5 @4 `! e- M0 b2 j) Z8 }
  6.         winname.document.write(str);: r7 z/ w. f/ S# U' G/ y/ t(w ww.qiuqiu fa.c o  m)4 A2 N" l4 S; f+ d6 \
  7.         winname.document.close();
    3 X! G7 {( z% e) v$ d6 Z! W
  8. }
复制代码

/ c/ e- J) G5 M, a: I
& H2 e% E/ r7 O3 R2 ~3、复制代码,更简单 以下为引用的内容:, n- h6 g/ N; `3 B

/ f" J! q. B4 [1 h2 o* M
  1. function doCopy(obj) { % o1 B9 \: R9 u: b6 o
  2.   var str = reHtml(obj.innerHTML);; d9 |# n5 t, A1 J5 u$ c9 e. a
  3.         if (window.clipboardData.setData ("Text",str))
    & _  C: @! n% i* G. l/ p
  4.           {8 |4 @) k9 @5 M5 z7 f$ W5 _  N(www.qiuqiufa.c om): k: C* Y, ^7 w7 @: }& m7 k  e1 d
  5.               alert('球球发提示:复制成功;');* T5 A1 B: G  W. S6 i
  6.           }
    " J# L1 x4 O. c8 d5 J
  7.         else
    ! }2 X5 I# @1 X2 ?: X6 y+ m2 P' a
  8.           {( h. V+ x( }: Z  Z" c0 [
  9.               alert('球球发提示:复制失败;');" o5 S: v2 O5 @& I' l(www.qiu qiufa.c om)
    7 _9 Q4 }- g& z' W4 Z8 c
  10.           }( t2 x7 Y$ P% h( n1 \(w w w.qiu qiu fa.c om)
    ) ^; u! z5 |7 I; Y- P# H2 `+ l
  11. }) X9
复制代码

/ p" I# ?$ E6 \4 O* Z8 K+ A4、另保存代码 以下为引用的内容:
! L% o$ G; y6 h- N8 z" g
  1. function saveCode(obj) {
    0 ~' Q8 R5 `: c0 _
  2.         var winname = window.open('', '_blank', 'top=10000');: z- j2 m0 T3 N8 H* f4 B) C(w w w.qiuqiufa.c om)  M/ [9 x# l9 U4 Z% C
  3.         winname.document.open('text/html', 'replace');, L% m+ H3 }& X& |* o(w w w.qiu qiuf a.c om)7 M8 c, }3 u( b$ L* e: {
  4.   var str = reHtml(obj.innerHTML);
    + n8 U0 i& ^+ x5 ^
  5.         winname.document.write(str);+ ^" M7 K  j+ _2 k(w w w.qiuqiufa.c om)
    - ], \; P( @1 s) V4 ^
  6.         winname.document.execCommand('saveas','','code.htm');/ T4 E, U. j5 c; q/ G- \(ww w.q iuqiufa.c om)
    & u! F. X. _" f% v
  7.         winname.close();5 _# c" m5 X6 o(ww  w.qiuqiuf  a.c om)
复制代码

2 B9 `- E* p: e# \( h' ^- K: y0 }
) U$ t8 B+ i4 ?" P: q

0

主题

8

帖子

4

积分

1°伸手党

Rank: 2

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

使用道具 举报

网站简介

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