DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: melqui
今日帖子: 3
在线用户: 2
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/2 18:45:18
标题:
一个基于 TEdgeBrowser 的富文本编辑器源代码 浏览:3022
加入我的收藏
楼主: 本人花了几天查 JavaScript 命令后做的。



支持贴图。图片采用内嵌数据的方式。好处是输出保存为文件时,一个 HTML 文件搞定。如果输出的内容直接保存到数据库的 Blob 也可以图片和文本一起搞定。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/2 18:46:46
1楼: 我擦,贴不了 URL,说有非法内容。没法玩了。

github.com/pcplayer/J-S-E-d-i-t-o-r/tree/master
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/2 18:47:58
2楼: 把上面的地址里面的横杠去掉吧。加横杠是为了避免敏感词。
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/11/2 19:16:49
3楼: 我靠 进去是空白项目,还以为假开源。原来要切分支……按此在新窗口浏览图片
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/2 20:28:00
4楼: 我在自己电脑上,用小乌龟提交,小乌龟建立的分支是 master。这个是传统的。

现在 github 估计是为了迎合白左的政治正确,不能说 master - slave 了,它把默认的改为 main 了。

所以我提交后是 master,而 github 自己还有个 main。

基于白左的政治正确,还把黑名单(black list)也不能用了。说黑就不对。

白左搞政治正确的,都是傻叉,无一例外。
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/11/2 21:32:08
5楼: https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/
按此在新窗口浏览图片  运行时。 直接视频都打开了。按此在新窗口浏览图片


能支持markdown 语法么。

对了不用本地开80 .。有个接口可以url。。。 我上次抄了CPP的 不记得共享没。。
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 k3man (嗯哼) ★☆☆☆☆ -
普通会员
2021/11/2 23:35:55
6楼: J S是敏感词。做为Delphi区是禁止讨论前端的。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/3 11:06:01
7楼: 5楼,我内置了一个 Web Server 也没用本地 80 啊。反正 Delphi 的 WebBroker 程序,用哪个端口自己随意。

至于说 markdown,就是一堆标记的翻译转换,把 markdown 的标记转换为 HTML 的标记,转换完了随便一个浏览器都可以查看,和这里涉及到的技术没关系,懒得搞了。

之前也看过 markdown,下载了几个要钱的 markdown 程序,付了钱,然后发现,各家的兼容性都不一样,没什么好玩的,卸载了。

github 上有一个 delphi 的 markdown 项目,下载来试了试,可以用。不过,问题依然是 markdown 的各家标准都不统一导致解析出现各种问题。
----------------------------------------------
-
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2021/11/3 11:21:09
8楼: 感谢分享,希望楼主做个fmx的富文本编辑器!
----------------------------------------------
虽千万人吾往矣!
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/11/3 15:22:33
9楼: 我看到的markdown程序 看上去就像套Browser。。
jsmarkdown 也找了几个 都不能生成图按此在新窗口浏览图片
边写边预览还行。
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 723953660 (pbxyliang) ▲△△△△ -
普通会员
2021/11/3 18:07:29
10楼: 向大佬致敬
----------------------------------------------
-
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2021/11/6 19:10:00
11楼: 找到了
http://bbs.2ccc.com/topic.asp?topicid=608564
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/8 11:03:22
12楼: 8楼大神,我会抽时间搞搞 FMX 的 WebBrowser。

不过在 WINDOWS 底下,它好像是基于 IE 的,可能对我引用的 JS 和 CSS 的支持会有问题。抽时间我来试试看吧。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/8 19:24:22
13楼: 报告8楼:

1. Fmx 的 TWebBrowser 在 Windows 底下,确实支持的 JavaScript 有限。比如我在 TEdgeBrowser 里面使用的代码段的 JavaScript 库,在这里无法正常显示出该有的效果。但我相信在安卓底下应该没问题,因为我曾经在安卓底下采用 FMX 的 WebBrowser 来显示我自己的网页内容,是包含了一些比较新的 JavaScript 库的。苹果底下不清楚。

2.其它功能,因为在 TEdgeBrwoser 底下都是用 JavaScript 命令来实现的,换到 FMX 底下,只是调用 JavaScript 的方法稍微有区别,但测试结果是可以正常执行的,只要这个 JavaScript 是 IE 支持的就行,比如:

procedure TForm1.DoBold;
var
  JS: string;
begin
  JS := 'document.execCommand("bold", false, null);';
  WebBrowser1.EvaluateJavaScript(JS);
end;

这段代码,在 FMX 的 WebBrowser 上面,在 WINDOWS 里面,执行成功,结果正常。

另:内嵌图片数据的 HTML 网页,在 FMX 的 WebBrowser 上面,WINDOWS 里面也能够正常看到图片。
----------------------------------------------
-
作者:
男 letianwuji (大器晚成) ▲▲▲▲▲ -
普通会员
2021/11/8 20:50:08
14楼: Edge浏览器基于 Chromium 开源项目,能不好使么。
哈哈哈,我想到个新玩法,试试去。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/9 11:08:07
15楼: 同样内容,贴一下我的博客地址:

https://blog.csdn.net/pcplayer/article/details/121223167?spm=1001.2014.3001.5501
----------------------------------------------
-
作者:
男 fu510558553 (凡人的快乐) ★☆☆☆☆ -
普通会员
2023/4/14 17:50:12
16楼: @pcplayer 
WebBrowser上的另存为WebBrowser1.ExecWB(4,1);
但是在EdgeBrowser上如何调用(另存为)呀一直没找到,不知是哪个
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/4/14 22:27:50
17楼: 16楼,你这个问题,我想不起来该怎么做。然后,我查了一下我之前的代码。

记性不好啊,做过的都忘记了。幸好以前的代码没有丢。

我的办法是:

1. 让 Browser 执行一个 JS:

procedure TFrameEdgeEditor.SendGetHTMLCmd;
var
  S: string;
begin
  S := 'encodeURIComponent(document.documentElement.outerHTML)';
  EdgeBrowser1.ExecuteScript(S);
end;

2. 在 WebBrowser 的事件:OnExecuteScript 事件里面写代码把执行结果拿到。执行上述 JS 后的执行结果就是整个页面的 HTML:

上述事件里面读执行结果的代码:
FScriptReturn := TNetEncoding.URL.Decode(AResultObjectAsJson);

因此你就获得了页面的 HTML 字符串。字符串都有了,保存为文件总会吧?
----------------------------------------------
-
作者:
男 fu510558553 (凡人的快乐) ★☆☆☆☆ -
普通会员
2023/4/16 6:59:11
18楼: @pcplayer
这种方式不完美哦,保存为html文件后,打开查看效果不佳, 有的连框架都没有

我想最好还是 能像WebBrowser那样直接 WebBrowser1.ExecWB(4,1);
----------------------------------------------
-
作者:
男 1111111113 (1111111113) ▲△△△△ -
普通会员
2023/4/16 11:00:55
19楼: (chrome,edge)保存mhtml格式最佳
怎么保存呢?不会,c++没看可以去看看有木有
----------------------------------------------
-
作者:
男 fu510558553 (凡人的快乐) ★☆☆☆☆ -
普通会员
2023/4/16 17:36:24
20楼: @1111111113
你没看懂的我说的意思,我没说保存html不佳,我说楼主给我的那个方法,我试了之后,这样保存的方式打开浏览时,效果不佳。

我想有没有像WebBrowser那样直接调用 WebBrowser1.ExecWB(4,1);这样来保存
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/4/17 0:25:20
21楼: 你说的 WebBrowser1.ExecWB(4,1) 这个背后是微软的 IE 的那个 COM 封装,调用的接口。新的浏览器估计没有 COM 封装接口了。
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2023/4/17 8:21:19
22楼: 在win11上装webbrowser后,webbrowser内核变成了edge,现在想打开pdf\word文档就没以前好弄了。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/4/17 10:14:32
23楼: 打开 PDF 很简单:

EdgeBrowser1.Navigate(MyDoc.PDF);


搞定!
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2023/4/17 12:38:55
24楼: 楼上大师,打开word不像以会嵌入到组件内,而会另外启动office\wps,这个不知道怎么弄
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/4/17 13:31:32
25楼: 这个网上一搜就有答案。

https://www.makeuseof.com/office-viewer-microsoft-edge/

https://support.microsoft.com/en-us/office/quick-access-to-your-office-files-in-the-browser-dc1024b4-92be-46eb-81a7-aea85368baa0

简单说就是给 Edge 浏览器安装扩展插件。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行972.6563毫秒 RSS