Foxtable(狐表)用户栏目专家坐堂 → echarts图表,开发环境没问题,发布后居然会报错(果然,装逼容易被雷劈了....)


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

主题:echarts图表,开发环境没问题,发布后居然会报错(果然,装逼容易被雷劈了....)

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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
echarts图表,开发环境没问题,发布后居然会报错(果然,装逼容易被雷劈了....)  发帖心情 Post By:2019/3/5 23:20:00 [只看该作者]


我把Echarts集成进去系统里。思路是用版主的,
先把Echart的数据代码整理好,然后替换html里的某段内容,最后把生成的缓存html,拿入WebBrowser里。

有些Echart图表,开发时和发布后,都能用。有些确不能,例如下面的日历图


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


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


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

非常奇怪。这是一个比较典型的问题,我特意挑出来问问

我把项目拿出来了,版主可以自己发布看看。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

顺便放出代码:

'思路:
'1把模板html文件内容读取
'2用TextBox的内容替换模板里的关键代码
'3生成一个名字随机不重复的临时html报表结果缓存
'4把html报表结果拿到WebBrowser展示

'准备好缓存目录---
If FileSys.DirectoryExists(ProjectPath & "temp") Then
    FileSys.DeleteDirectory(ProjectPath & "temp",2,2)'清空缓存文件夹
End If
FileSys.CreateDirectory(ProjectPath & "temp") '生成缓存要用的文件夹
'准备好缓存目录---

Dim str As String = FileSys.ReadAllText(ProjectPath & "Attachments/web/echarts/Model.html", encoding.utf8)'获取模板的代码
str = str.Replace("//##狐表要替换的js代码##//", e.Form.controls("TextBox1").Text)'替换模板里的代码
Dim file As String = ProjectPath & "temp/" & Guid.NewGuid().ToString() & ".html" '随机生成一个名字,为了缓存一个不重复的临时文件
FileSys.WriteAllText(file, str, False, Encoding.utf8) '把替换好html内容写回去

Dim webBrowser As Object = e.Form.Controls("WebBrowser1").basecontrol
webBrowser.navigate(file)'把生存的缓存html加载懂啊WebBrowser显示

Echart原始数据来自(完全一样拷贝的):https://echarts.baidu.com/examples/editor.html?c=calendar-graph 

[此贴子已经被作者于2019/3/6 9:43:33编辑过]

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


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

ie内核的问题吧。webbrowser默认是ie6.0内核的。

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=84931&skin=0

 

其中,红色改成你发布的项目进程名称

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"foxtable.exe"=dword:0000270f

 

在foxtable里面,用代码设置也可以,如

 

Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION","test1.exe",9999)


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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2019/3/6 9:44:00 [只看该作者]

妥了,解决了。但是我好奇,如果在默认的win7系统下,ie原生是7版本的,强行设置为ie9,会不会出问题?

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


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

以下是引用chen37280600在2019/3/6 9:44:00的发言:
妥了,解决了。但是我好奇,如果在默认的win7系统下,ie原生是7版本的,强行设置为ie9,会不会出问题?

 

修改内核参数即可。只要不是ie6,应该都是支持echart的。


 回到顶部