Foxtable(狐表)用户栏目专家坐堂 → [求助]HTML编辑器同步删除图片


  共有4721人关注过本帖树形打印复制链接

主题:[求助]HTML编辑器同步删除图片

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]HTML编辑器同步删除图片  发帖心情 Post By:2019/1/24 21:24:00 [只看该作者]

HTML编辑器添加本地图片后,如果在编辑器窗口鼠标右键删除图片,项目目录下的图片文件同时删除的代码怎么写?
另外,添加  “本地图片”  的按钮代码,有两段基本重复,但又修改不好,麻烦老师看一下。
谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:html管理项目-测试.rar





 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/25 10:43:00 [只看该作者]

变通处理才行,如 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:html管理项目-测试.zip


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/25 21:58:00 [只看该作者]

老师好!
我是这样想的:
每当在HTML编辑器中删除一张图片时,数据表的单元格都会删除一行对应的代码。
怎样根据单元格中被删除的代码,来删除对应目录下的图片文件?
比如单元格删除了这句(或多句)代码:<img alt="" src="../FTbqtemp/WYT45.jpg" />
那么就删除这个文件:  ProjectPath & "/FTbqtemp/WYT45.jpg"   


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片3.jpg
图片点击可在新窗口打开查看

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "html_内容"  
        Dim str As String = dr("html_内容")
        ......
  
End Select


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110816 积分:564024 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/25 22:12:00 [只看该作者]

最好还是在html编辑器里删除。

没有办法知道一大段文字里,到底删除了什么字符

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/26 21:40:00 [只看该作者]

老师好!
代码看明白了,但是遇到一点问题:
在HTML编辑器删除图片后,点击“保存”按钮,不起作用,需要鼠标在HTML编辑器里点击一下,使编辑窗口成为焦点控件后,再点击“保存”,才起作用。
我在“保存”按钮里加了一句代码,也不起作用,麻烦老师给改一下,谢谢!

代码如下:
e.Form.Controls("WebBrowser1").Select   ’这句代码没有在HTML编辑器里出现鼠标闪动

With Tables("监理通知单")
    .current("html_内容") = EditorHelper.BodyHtml
    Dim ls As List(of String) = .Current.DataRow.lines("本地图片")
    Dim rls As new List(of String)
    For Each f As String In ls
        If .current("html_内容").contains(f) = False Then
            If filesys.FileExists(ProjectPath & "FTbqtemp/" & f)
                FileSys.DeleteFile(ProjectPath & "FTbqtemp/" & f, 2, 2)
            End If
            rls.add(f)
        End If
    Next
    For Each f As String In rls
        ls.Remove(f)
    Next
    .Current.DataRow.lines("本地图片") = ls
    ' .current.save()
End With

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/27 12:14:00 [只看该作者]

 

具体例子发上来,说明如何操作出现问题。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/27 13:48:00 [只看该作者]

老师好!
例子就是2楼老师给写的,我测试是这样的:

1、添加本地图片进入HTML编辑窗口时,没有问题,数据表的[图片]列 和[html_内容]列都会自动添加图片和图片代码;

2、当鼠标右键在编辑窗口删除图片后,点击“保存”按钮,再关闭编辑窗口。
然后,双击单元格重新打开HTML编辑窗口,发现刚才在编辑窗口删除的图片仍然存在。

3、经测试,在编辑窗口鼠标右键删除图片后,需要在编辑窗口内再点击一次,然后保存,图片才能在[图片]列 和项目目录中删除。


图片点击可在新窗口打开查看此主题相关图片如下:gif11.gif
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/27 14:44:00 [只看该作者]

改成这样

 

Dim web = e.Form.Controls("WebBrowser1").basecontrol
web.Document.InvokeScript("eval", new String() {"window.external.RequestContent(editor.html());"})


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 11:01:00 [只看该作者]

甜老师好!

我想截取HTML编辑窗口范围内(下图红框内)的图片,代码应该怎样修改?

 

'截取窗口控件图片
Dim Web = e.Form.Controls("WebBrowser1").BaseControl
Dim point As Point = e.Form.Panel.PointToScreen(Web.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(Web.width, Web.height)      '截取的大小
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y,0, 0, s)      '截取的开始位置,坐标(100, 200)
bit.save("d:\test.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose
 

 


图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/30 11:26:00 [只看该作者]

这个意思?

 

Dim Web = e.Form.Controls("WebBrowser1").BaseControl
Dim point As Point = e.Form.Panel.PointToScreen(Web.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(Web.width, Web.height-30)      '截取的大小
Dim bit As New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y+30,0, 0, s)      '截取的开始位置,坐标(100, 200)
bit.save("d:\test.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose

 


 回到顶部
总数 15 1 2 下一页