| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1548 人关注过本帖
标题:webbrowser能否直接运行html文本
只看楼主 加入收藏
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
结帖率:97.3%
收藏
已结贴  问题点数:20 回复次数:21 
webbrowser能否直接运行html文本
目前的做法是,通过下面的语句运行一个html文件
thisform.olecontrol1.navigate2(html文件名)
问题:能否不运行html文件,直接运行html文本?
搜索更多相关主题的帖子: html 运行 文件 webbrowser 文本 
2023-02-17 08:50
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:790
专家分:1170
注 册:2021-10-13
收藏
得分:0 
可以啊,本来就是ie内核,相当于自己的浏览器,实质就是ie。刚没看懂你的意思~~~

你的意思是解析html文件的文本呗。。。

[此贴子已经被作者于2023-2-17 10:52编辑过]

2023-02-17 10:35
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
收藏
得分:0 
以下是引用sam_jiang在2023-2-17 10:35:25的发言:

可以啊,本来就是ie内核,相当于自己的浏览器,实质就是ie。刚没看懂你的意思~~~

你的意思是解析html文件的文本呗。。。

是的,就是想用html文本直接执行,而不用再调用一个文件
我不知道用什么方法,请指教
2023-02-17 11:04
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:790
专家分:1170
注 册:2021-10-13
收藏
得分:0 
没用过webbrowser控件,不是很清楚是否可以直接执行html文本,按理说是有这个功能的。(xml解析器就是可以执行XML文件,以及xml文本的)

有个笨办法,就是把你的HTML文本保存为临时文件,再执行这个临时html文件。
2023-02-17 12:05
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
收藏
得分:0 
以下是引用sam_jiang在2023-2-17 12:05:32的发言:

没用过webbrowser控件,不是很清楚是否可以直接执行html文本,按理说是有这个功能的。(xml解析器就是可以执行XML文件,以及xml文本的)

有个笨办法,就是把你的HTML文本保存为临时文件,再执行这个临时html文件。

现在用的就是这个笨办法
2023-02-17 13:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
这样试试
图片附件: 游客没有浏览图片的权限,请 登录注册
2023-02-17 15:08
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
收藏
得分:0 
方法1:
LOCAL xurl
xurl = "about:<html><body><pre>hello world</pre><body></html>"
thisform.olecontrol1.navigate2(xurl)
结果:可以显示 hello world

方法2:
xurl = FILETOSTR('D:/fj/pie-simple.html')
xurl = "about:<html><body><pre>"+xurl+"</pre><body></html>"
thisform.olecontrol1.navigate2(xurl)
结果:没有任何反应就结束了,窗口还是空白的

方法2的写法有问题吗?
2023-02-17 15:44
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 7楼 laowan001
地址字符串长度有限制,本测试不能超过515个字符。
或者用脚本动态创建页面
2023-02-17 17:11
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:708
专家分:2833
注 册:2018-3-13
收藏
得分:0 
大概过程是这样:
Thisform.olecontrol1.Navigate('')
Thisform.olecontrol1.Navigate('about:blank')
Inkey(1)
Try
    oDoc = Thisform.olecontrol1.Document
Catch
    oDoc = Null
EndTry
If Vartype(oDoc) == 'O' and !IsNull(oDoc)
    oDoc.Write('Hello world')
EndIf
由于导航到空白页是由 webbrowser 异步完成的,因此什么时候完成装载(能取到 Document 对象)时间不定,最好在 DocumentComplete 事件中写 html 字符串

[此贴子已经被作者于2023-2-17 17:45编辑过]


这家伙很懒,啥也没留下
2023-02-17 17:28
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1092
专家分:2686
注 册:2015-12-30
收藏
得分:0 
以下是引用吹水佬在2023-2-17 17:11:28的发言:

地址字符串长度有限制,本测试不能超过515个字符。
或者用脚本动态创建页面

515个肯定不够用
另:用脚本动态创建页面如何实现?我现在有已经有生成好的html文件
2023-02-17 21:23
快速回复:webbrowser能否直接运行html文本
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029967 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved