由于事情中有很多时候需要用到window.external,以前一直稀里糊涂的,今天又被人问到,于是突击学习了一下,记下备忘。
--------------------------------------
我们在js中可以通过window.external.myfunc()来挪用浏览器供给的外部要领myfunc。可以让网页内的js脚本中能挪用C++代码。
IE的已默认实现了一些外部要领,可以参见
1:某文章:
2:官方文档里有更多: ?url=http://www.mamicode.com/workshop/author/dhtml/reference/objects/external.asp
在嵌入了浏览器的工程中,除了IE默认供给的外部要领之外,需要网页的脚本中能挪用C++代码,要实现这种交互,就必需实现脚本扩展。实现脚本扩展就是在措施中实现一个IDispatch接口,通过CHtmlView类的OnGetExternal虚函数返回此接口指针,这样就可以在脚本中通过window.external.XXX(关键字window可以省略)来 引用接口袒露的要领或属性(XXX为要领或属性名)。
参考《实现脚本扩展》
Firefox与Chrome也供给了external东西,例如,他们都默认的实现了opensearch的两个外部要领:
AddSearchProvider IsSearchProviderInstalled
Chrome下,可以在控制台输入window.external看到。
Firefox默认供给的外部要领稍稍多一些,也可以可以通过firebug看到。
window.external.AddFavorite这个把网站添加到浏览者保藏夹的脚本大家应该每每看过,但你还知道window.external的此外一些用法呢?由于是一些关于系统文件操纵的命令,因为安适设置有些脚本会堕落误.
1.external.AddDesktopComponent 把网站作为用户的Active桌面
语法:external.AddDesktopComponent(地点,类型[image/website],左距离,顶距离,宽度,长度)
function j_adc(){ //例子
window.external.AddDesktopComponent("http://www.i0713.net","website",0,0,800,600);
}
2.external.AddFavorite 把网站插手到用户的保藏夹
语法:external.AddFavorite(网址,标题);
function j_af(){
window.external.AddFavorite(location.href, document.title);
}
3.external.NavigateAndFind 搜索指定网站中的某个字段
语法:external.NavigateAndFind(文件地点,关键字,,_Target)
<script language="JavaScript">
function j_an(){
window.external.NavigateAndFind("http://www.i0713.net/IT/prog/find.asp",gosearch.value,"");
}
</script>
4.external.ShowBrowserUI 挪用语言选择窗口与保藏夹打点窗口
语法:external.ShowBrowserUI(类型[LanguageDialog/OrganizeFavorites], null)
<input type="button" value="语言设置">
<input type="button" value="整理保藏夹">
5.external.ImportExportFavorites 导入与导出用户保藏夹
语法:external.ImportExportFavorites(导入/true 导出/false, 文件路径)
<input type="button" value="导入保藏夹" onClick=window.external.ImportExportFavorites(true,"http://www.i0713.net");>
<input type="button" value="导出保藏夹" onClick=window.external.ImportExportFavorites(false,"http://www.i0713.net");>
TANTOM:无忧脚本的也有类似的措施,大家可以尝尝,但用php实现不了接收用户传来的保藏夹资料,导入却很简单。手上有用Asp与Php来接收用户保藏夹的代码,Asp没试过不知道可不成用,PHP的试过,但只可以接到75%的保藏夹资料,挺奇怪的,有兴趣要php与asp代码的在论坛发个帖子吧。
External还有几个用法,但没什么用途,没列出来。
相关文章
- 今天是怎么了,又碰到一个奇怪的问题,tomcat启动报错,前所未有!!!!跪等大神
- 今天虚竹哥又发现了一款好用的国产化API工具
- 今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的解决了这个问题。
- 关于Integer的比较,今天又犯了一个低级错误,记录下
- 很早以前翻译的一篇文章,今天用到,又温习了一下,从博客转过来和大家分享。
- 女头很好看个性又很唯美2022 送你一束花祝你今天快乐
- HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?
- 今天又被人问到
- 很早以前翻译的一篇文章,今天用到,又温习了一下,从博客转过来和大家分享。
- 今天又重新清理了一下"磁盘和内存",希望自己早日恢复正常!!!!