BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #13717同步于 2011/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

开个楼与大家讨论浏览器插件

fk187andhk
2011/6/6镜像同步12 回复
因为自己对这方面的内容知之甚少,所以想跟大家讨论一下。 之前开了一个有关HTML5的楼,没想到会有那么多的朋友回复参与讨论,受宠若惊。才发现入学多年来从来没有利用好论坛这个身边最大的资源,还好现在还来得及。 对于浏览器插件,我主要有以下几个问题: 1)浏览器插件有哪些种类? 2)插件的实现原理是什么?在Windows环境下是否类似于动态链接库一类的程序? 3)浏览器统一封装插件功能,对外提供API,这样的架构是否靠谱? 由于自己所知有限,有些问题描述的不太专业,还请各位批评指正。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wks机器人#1 · 2011/6/6
浏览器插件和别的程序的插件没有本质的区别吧。只是提供一个操纵网页的接口而已。 程序的插件,只要能动态装载就可以吧,至于如何动态装载,跟语言、实现有关。比如c/c++可以dll/so动态加载;java用jar,c#用dll,python可以直接加载其他.py…… 当然也不必要求插件和主程序是一种语言。比如c程序里嵌入一个lua解释器,java程序里嵌入一个javascript解释器……然后装载脚本就像读文本文件一样。 甚至也不要求在同一个进程里。 ================================ 考虑以前这个帖子: http://bb6.byr.cn/article/SoftDesign/37341 还有以下这些脑残文: http://cloverprince.iteye.com/blog/481307 http://cloverprince.iteye.com/blog/481309 http://cloverprince.iteye.com/blog/481312 http://cloverprince.iteye.com/blog/481574 http://cloverprince.iteye.com/blog/481755 http://cloverprince.iteye.com/blog/481776 ================================ 做过firefox扩展(extension)。一个扩展用 * 一些xul描述界面 * 一些javascript脚本程序描述行为 * 一些css, 图片什么的 * 当然还有一些元数据,像插件名称什么的…… 一个扩展就是这些文件打一个包(其实就是zip文件) 其实firefox本身也是用xul+js写的。所以整个浏览器就像是被解释执行一样。所以也不是用dll这样的本地代码程序扩展的。 至于如何装载……xul是xml文件,可以直接读取然后解析;js是文本格式,浏览器里内置一个js解释器解释就可以了。 比如这个: <overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <statusbar id="status-bar"> <statusbarpanel id="my-panel" label="Hello, World" /> </statusbar> </overlay> 这是一个在状态栏上添加一个“hello world”的代码。firefox装载它(就是解析这个xml)以后,按xml的意思,在状态栏上添加一个栏目就可以了。
BookMoth机器人#2 · 2011/6/7
关注一下。 顺便问这样一个问题:跨不同浏览器的插件,比较好的实践是什么样子的? 【 在 wks (cloverprince) 的大作中提到: 】 : 浏览器插件和别的程序的插件没有本质的区别吧。只是提供一个操纵网页的接口而已。 : 程序的插件,只要能动态装载就可以吧,至于如何动态装载,跟语言、实现有关。比如c/c++可以dll/so动态加载;java用jar,c#用dll,python可以直接加载其他.py…… : 当然也不必要求插件和主程序是一种语言。比如c程序里嵌入一个lua解释器,java程序里嵌入一个javascript解释器……然后装载脚本就像读文本文件一样。 : ...................
wks机器人#3 · 2011/6/7
这…… 除了让不同的浏览器满足同一个标准(比如统一用firefox扩展的接口),没别的好办法吧。 【 在 BookMoth 的大作中提到: 】 : 关注一下。 : 顺便问这样一个问题:跨不同浏览器的插件,比较好的实践是什么样子的? : 【 在 wks (cloverprince) 的大作中提到: 】 : ...................
fk187andhk机器人#4 · 2011/6/8
【 在 wks 的大作中提到: 】 : 浏览器插件和别的程序的插件没有本质的区别吧。只是提供一个操纵网页的接口而已。 : 程序的插件,只要能动态装载就可以吧,至于如何动态装载,跟语言、实现有关。比如c/c++可以dll/so动态加载;java用jar,c#用dll,python可以直接加载其他.py…… : 当然也不必要求插件和主程序是一种语言。比如c程序里嵌入一个lua解释器,java程序里嵌入一个javascript解释器……然后装载脚本就像读文本文件一样。 : ................... 谢谢大牛了,能不能指导一下,有没有哪些比较经典的这方面的书籍?
fk187andhk机器人#5 · 2011/6/8
【 在 BookMoth 的大作中提到: 】 : 关注一下。 : 顺便问这样一个问题:跨不同浏览器的插件,比较好的实践是什么样子的? : 【 在 wks (cloverprince) 的大作中提到: 】 : ................... 不同浏览器之间的插件,是不是用Java的那个比较好?
zzcc机器人#6 · 2011/6/8
跨浏览器?油猴就好了 关键是接口,不过大多都是js,似乎封装一层也不是不行。 什么?你说IE?IE可以吃掉吗? 【 在 BookMoth 的大作中提到: 】 : 关注一下。 : 顺便问这样一个问题:跨不同浏览器的插件,比较好的实践是什么样子的? : 【 在 wks (cloverprince) 的大作中提到: 】 : ...................
wks机器人#7 · 2011/6/8
请教一下,lz说的“浏览器插件”的定义是什么呢?是不是我理解错了? 或者举几个例子,什么样的东西是浏览器插件? 【 在 fk187andhk 的大作中提到: 】 : : 关注一下。 : : 顺便问这样一个问题:跨不同浏览器的插件,比较好的实践是什么样子的? : : 【 在 wks (cloverprince) 的大作中提到: 】 : ...................
zzjin机器人#8 · 2011/6/8
千百围观大牛讨论。小白学习ing
fk187andhk机器人#9 · 2011/6/8
【 在 wks 的大作中提到: 】 : 请教一下,lz说的“浏览器插件”的定义是什么呢?是不是我理解错了? : 或者举几个例子,什么样的东西是浏览器插件? : 【 在 fk187andhk 的大作中提到: 】 : ................... 怎么说呢,我意思的浏览器插件就类似于Flash插件这类的扩展浏览器功能的应用程序 比如我们看优酷等视频网站都必须有Flash插件