window.external的使用

由于工作中有很多时候需要用到window.external,以前一直稀里糊涂的,今天又被人问到,于是突击学习了一下,记下备忘。
--------------------------------------
我们在js中可以通过window.external.myfunc()来调用浏览器提供的外部方法myfunc。可以让网页内的js脚本中能调用C++代码。

IE的已默认实现了一些外部方法,可以参见
1:某文章:http://www.it118.org/Specials/2e876829-483a-4216-a6ef-08a472c94297/8f8d0507-b4c8-4d92-8e35-3c88dade3a17.htm
2:官方文档里有更多: http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/external.asp

在嵌入了浏览器的工程中,除了IE默认提供的外部方法之外,需要网页的脚本中能调用C++代码,要实现这种交互,就必须实现脚本扩展。实现脚本扩展就是在程序中实现一个IDispatch接口,通过CHtmlView类的OnGetExternal虚函数返回此接口指针,这样就可以在脚本中通过window.external.XXX(关键字window可以省略)来 引用接口暴露的方法或属性(XXX为方法或属性名)。
参考《实现脚本扩展》http://topic.csdn.net/u/20080116/17/5fbac468-1188-4c9c-9339-ad48edd8a4d3.html

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" name="Button" value="语言设置" onclick="window.external.ShowBrowserUI(‘LanguageDialog‘, null)">
<input type="button" name="Submit2" value="整理收藏夹" onclick="window.external.ShowBrowserUI(‘OrganizeFavorites‘, null)">

  5.external.ImportExportFavorites 导入与导出用户收藏夹
  语法:external.ImportExportFavorites(导入/true 导出/false, 文件路径)
<input type="button" name="Button" value="导入收藏夹" onClick=window.external.ImportExportFavorites(true,"http://www.i0713.net");>
<input type="button" name="Button3" value="导出收藏夹" onClick=window.external.ImportExportFavorites(false,"http://www.i0713.net");>

  TANTOM:无忧脚本的也有类似的程序,大家可以试试,但用php实现不了接收用户传来的收藏夹资料,导入却很简单。手上有用Asp与Php来接收用户收藏夹的代码,Asp没试过不知道可不可用,PHP的试过,但只可以接到75%的收藏夹资料,挺奇怪的,有兴趣要php与asp代码的在论坛发个帖子吧。

  External还有几个用法,但没什么用途,没列出来。

原文地址:https://www.cnblogs.com/front-end-develop/p/8462485.html

时间: 2024-10-13 13:20:04

window.external的使用的相关文章

修改window.external使JS可调用Delphi方法

原文地址:http://hi.baidu.com/rarnu/blog/item/4ec80608022766d663d986ea.html 在js中,有一个比较特殊的对象,即window.external,用它可以调用浏览器提供的外部方法一个很简单的例子就是将当前页添加到收藏夹window.external.addFavorite("http://blog.csdn.NET/youthon","弘石的博客');这样写脚本就可以了.那么如果我想自己定义external,以便在

window.external.addFavorite 添加收藏夹的一些技巧

<a href="#" onclick="window.external.addFavorite('http://www.baidu.com','新闻发布网站');" >收藏本站</a> 其中a href="#" 没什么用,关键看后面的onClick事件 <script type="text/javascript">function AddFavorite(sURL, sTitle){   

window.external.JavaScriptCallCpp

方案2: 1.编写html <html> <head> </head> <body> <script language="javascript">function CallCpp() { alert('start to call cpp here'); window.external.JavaScriptCallCpp('This is a test for call C++ in JavaScript'); } </s

JS的window对象详解

一.说明 他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用"Window.XXX"这种形式,而是直接使用"XXX".一个框架页面也是一个窗口. 二.Window窗口对象有如下属性 1.name 窗口的名称,由打开它的连接(<a target="...">)或框架页(<frame name="...">)或某一个窗口调用的 open() 方法(见下)决定.一般我们不会用

Window及document对象

注:页面上元素name属性以及JavaScript引用的名称必须一致包括大小写 否则会提示你1个错误信息 "引用的元素为空或者不是对象" 一.Window对象 -------------------------------------------------- ------------------- 对象属性 window //窗户自身 window.self //引用本窗户window=window.self window.name //为窗户命名 window.defaultSta

Window对象与DOM

目前,前端插件数不胜数,比如有移动端滑动特效插件Swiper,下拉刷新的iScroll,弹出框插件layer,还有我们经常使用的JQuery,jquery.mobile等,这些插件能够满足我们日常的基本开发,我们只需调用相应的接口就能实现很炫酷的方法,万变不离其宗,原始操作HTML文档的还是window对象或者DOM,下面是它们之间的关系及用法! 文档对象模型(DOM)  在DOM中,HTML文档的层次结构被表示为一个树形结构.树的根节点是一个表示当前HTML文档的Document对象,树的每个

Window及document对象的区别

一.Window对象 -------------------------------------------------- ------------------- 对象属性 window //窗户自身 window.self //引用本窗户window=window.self window.name //为窗户命名 window.defaultStatus //设定窗户状态栏信息 window.location //URL地址,配备布置这个属性可以打开新的页面 -----------------

详解HTML中的window对象和document对象

Window -- 代表浏览器中一个打开的窗口: 对象属性 window //窗口自身 window.self //引用本窗户window=window.self window.name //为窗口命名 window.defaultStatus //设定窗户状态栏信息 window.location //URL地址,配备布置这个属性可以打开新的页面 对象方法 window.alert("text") //提示信息会话框 window.confirm("text")

关于window.open弹出窗口被阻止的问题

原文:http://blog.csdn.net/fanfanjin/article/details/6858168 在web编程过程中,经常会遇到一些页面需要弹出窗口,但是在服务器端用window.open弹出的窗口会被IE阻止掉,showModalDialog弹出的窗口有时并不能满足我们需要,我们需要弹出新的浏览器窗口. 为什么我们编写的弹出窗口会被IE阻止呢,原来IE会自动判断弹出窗口的状态,它会阻止自动弹出的窗口,而通过我们用鼠标点击弹出的窗口,它是不会阻止的.这里就有一个问题,有人说:我