DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: kmh
今日帖子: 19
在线用户: 19
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 11:08:28
标题:
DECF3 网站显示不正常。。。 浏览:452
加入我的收藏
楼主: https://github.com/hgourvest/dcef3,在这里下载的
成功安装并在C++ builder 10.2.2中使用

现在的问题是访问某些网站不正常(这些网站在我的360急速浏览器中都是正常的)

http://218.204.69.227:57002/#/leader
首先是这个网站,这是我需要工作的网站,在我程序中,登录按钮看不见,验证码图片看不见。。

视频网站:www.acfun.cn
视频播放区域为空白。。。
此帖子包含附件:
PNG 图像
大小:1.07M
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 11:09:24
1楼: 浏览器正常登录显示如图
此帖子包含附件:
PNG 图像
大小:671.9K
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2020/8/27 11:49:56
2楼: 九江??

你这用了activex?flash?
用了这俩货就会有问题。
另外,如果有视频,例如:h264,h265编码都有问题。
由于版权问题,要支持264、265的话要你自己去重新打包对应的解码器。
而flash是在计划中不再支持的东西。
至于其他activex的话,那是ie的东西,你要换成ie核心的才行。
----------------------------------------------
--
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2020/8/27 11:56:08
3楼: 推荐用 https://github.com/salvadordf/CEF4Delphi
----------------------------------------------
GOD with US
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 12:00:21
4楼: http://218.204.69.227:57002/#/leader
这网站,不是我做的,是别人做的,我对做web基本不了解。。。所以我不知道这个网站是否用了activex,flash没。。

我用360浏览器访问这个网站,IE模式,一片空白,只有用急速模式(chrome内核)才能正常访问。。
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 keymark (keymark) ▲△△△△ -
注册会员
2020/8/27 14:01:32
5楼: 按此在新窗口浏览图片
edge(Chromium)
----------------------------------------------
播客
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2020/8/27 14:10:11
6楼: emm.
ie11打开并没有什么问题,不知道你用的什么浏览器,大流氓没用过,你只有自己研究了。

还有就是,页面写的有问题,你还是要联系开发者一起商量好一些。
此帖子包含附件:
PNG 图像
大小:234.4K
----------------------------------------------
--
作者:
男 earthsbest (全能中间件) ▲▲△△△ -
注册会员
2020/8/27 17:03:17
7楼: 10.4 TEdgeBrowser 显示正常。
此帖子包含附件:
PNG 图像
大小:779.3K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 17:59:56
8楼: https://github.com/salvadordf/CEF4Delphi
在这里下载了CEF4Delphi,在DELPHI里面安装,然后在C++ builder里面使用,和dcef3一样的操作。

结果再C++ builder编译的时候报错,报错来自在delphi中安装控件时,自动生成的.hpp文件。。。

这个错误我看不懂,貌似错误和提示的代码行,没有关系啊。。
错误提示是set模板,但是指向的代码没有用到set模板啊。。
此帖子包含附件:
PNG 图像
大小:249.5K
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 18:25:18
9楼: 我明白了。。这个错误的产生,是因为
WM_POINTERUPDATE这个符号(还有很多其他静态变量),已经在winuser.h里面被定义成宏了。。。

和winuser.h里面的宏定义冲突。。这可咋整啊。。
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 19:50:27
10楼: 编译问题解决了,其实这个头文件中定义的这些和winuser.h重复的静态变量名称的值和winuser.h对应的值完全相同,所以将头文件中,命名冲突的静态变量,全部注释就好了。。。

但是现在用cb写了个demo,很简单,就显示个页面,但是初始化始终完成不了

chrm1->CreateBrowser(cfwndwprnt1,"");始终返回flase
hrm1->Initialized;始终是false

debug文件夹下,已经放置了这个控件运行所需要的库文件。。

这是为啥呢。。。
此帖子包含附件:
PNG 图像
大小:42.9K
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/27 21:18:31
11楼: 嗯。。。现在程序可以运行了,可以浏览网页,但是退出程序的时候弹出个AV错误。。
先不管,但是用CEF4Delphi访问我上面那个网站,结果还是一样的,还是看不见登录按钮和图形验证码部分。。。

我醉了。。。

从 dcef3 换到 CEF4Delphi,访问我那个网站,出的问题是一样的。。。
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 liskman (liskman) ▲▲▲▲▲ -
注册会员
2020/8/27 23:41:48
12楼: C++Builder 10.1  Berlin  
使用CEF4Delphi ,编译CEF4Delphi中的 SimpleBrowser例子,
浏览 http://218.204.69.227:57002/sso/login ;
确实是不显示 验证码等相关信息。

使用Chrome,FireFox, Edeg, IE11都可显示验证码信息。

查看CEF4Delphi中的 SimpleBrowser例子加载网页后的HTML源代码,发现
验证码输入框后
<input id="vcode" name="vcode" class="required el-input__inner" tabindex="3" style="width:140px;" type="text" value="" size="8" autocomplete="false">  就没有实际代码了。
而这后面就是那个动态验证码的图片。
在Chrome,FireFox, Edeg, IE11中,可以看到动态验证码图片的相关HTML代码。

这些代码应该是在服务器端动态实时生成的。
这个动态验证码是不是有对客户端有识别判断的机制,使用CEF4Delphi嵌入的浏览器,服务器端不识别,结果服务器端HTML代码生成就终止处理了,造成HTML网页不完整,就不显示  验证码、登录按钮、公众号图标等信息了。

所以还是要看服务器端的那个验证码图片生成有什么机制或要求。

一点分析,仅供参考。
----------------------------------------------
-
作者:
男 744840146 (744840146) ▲▲▲▲△ -
注册会员
2020/8/28 8:00:54
13楼: 违造agent试试
----------------------------------------------
-
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/28 9:24:55
14楼: liskman,多谢兄弟的详尽分析,我对web知之甚少。。
看来我得找做网站的人聊聊。。。

另,为什么我用dcef3 或者 CEF4Delphi 访问类似 www.acfun.cn 这种弹幕视频网,所有播放视频的区域,都只显示一个白色背景,不能看视频??据我所知,这个网站的视频是HTML5的,chrome内核的浏览器不是应该默认支持吗??
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 zgc123 (zgc123) ★☆☆☆☆ -
盒子活跃会员
2020/8/28 11:04:14
15楼: 最后都是浏览器兼容性问题
----------------------------------------------
欢迎访问我的网站:http://zhenggc.cc/http://zhenggc.ys168.comhttp://zhenggc.com/
作者:
男 liskman (liskman) ▲▲▲▲▲ -
注册会员
2020/8/28 11:56:25
16楼: 原来是 CEF4Delphi 默认Header头信息中语言设置项为:
Accept-Language: en-US,en;q=0.9
把它修改为
Accept-Language: zh-CN,zh;q=0.9
即可.

修改代码可以参考
procedure TForm1.Chromium1BeforeResourceLoad(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame;
  const request: ICefRequest; const callback: ICefRequestCallback;
  out Result: TCefReturnValue);
Var
  header: ICefStringMultimap;
begin
    header := TCefStringMultimapOwn.Create;
    request.GetHeaderMap(header);
     //map.Append('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36');
    header.Append('Accept-Language','zh-CN,zh;q=0.9');
    request.SetHeaderMap(header);
    callback.Cont(true);
    Result := RV_CONTINUE;
end;

网上搜索 "自定义修改TChromium的header头信息" 即可。
此帖子包含附件:
PNG 图像
大小:337.6K
----------------------------------------------
-
作者:
男 littlestone08 (littlestone08) ★☆☆☆☆ -
普通会员
2020/8/28 15:11:57
17楼: 厉害,这样的原因被找到了,MARK一下。这个应该是做网站的人的限制?
----------------------------------------------
我和我追逐的梦,擦肩而过
作者:
男 draculamx (draculamx) ▲▲▲△△ -
注册会员
2020/8/28 17:17:16
18楼: liskman,我只能说666了。。。。
----------------------------------------------
C++ builder 用户前来摸鱼。。。
作者:
男 earthsbest (全能中间件) ▲▲△△△ -
注册会员
2020/9/1 10:43:27
19楼: 一般我是设置以下几个属性:
  GlobalCEFApp := TCefApplication.Create;
  GlobalCEFApp.AcceptLanguageList := 'zh-CN';
  GlobalCEFApp.LocalesRequired := 'zh-CN';
  GlobalCEFApp.Locale := 'zh-CN';

一切正常。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行66.40625毫秒 RSS