参考2教会了我:
1. 制作Firebreath需要哪些库。
注意:参考3让我下载的Python的版本为2.7,要是你下载最新版本(比如3.4.3),那么在编译firebreath夹子下面的fbgen.py会产生问题。所以我不得已又下载了python2.7的版本来编译,结果一切OK.
参考1教会了我:
但是参考1里面有个问题“将产生的npdemo.dll复制到用来测试的Firefox profile文件中plugins目录(没有的话自己新建吧)下,然后用这个profile运行Firefox,打开FBControl.htm文件”让我不理解。
但是我在参考3找到了答案,其实就是将npdemo.dll复制到“C:\Users\Joseph\AppData\Roaming\Mozilla\Firefox\Profiles\x7f3i6v3.default\plugins”里面,这样就可以了。
个人感受
目前存在的问题
我通过
注册插件:regsvr32 npdemo.dll
卸载插件:regsvr32 /u npdemo.dll
在IE和firefox都可以用,但是在chrome却无法加载此插件。。
/
// 2015/06/05添加
在浏览器中调用插件
<!--
Auto-generated test-site
-->
<html>
<head>
<title>test page for object fbcontrol</title>
</head>
<script type="text/javascript">
function plugin0()
{
return document.getElementById('plugin0');
}
plugin = plugin0;
function addEvent(obj, name, func)
{
if (obj.attachEvent) {
obj.attachEvent("on"+name, func);
} else {
obj.addEventListener(name, func, false);
}
}
function load()
{
addEvent(plugin(), 'test', function(){
alert("Received a test event from the plugin.")
});
}
function pluginLoaded() {
alert("Plugin loaded!");
}
function addTestEvent()
{
addEvent(plugin(), 'echo', function(txt,count){
alert(txt+count);
});
}
function testEvent()
{
plugin().testEvent();
}
function pluginValid()
{
if(plugin().valid){
alert(plugin().echo("This plugin seems to be working!"));
} else {
alert("Plugin is not working :(");
}
}
</script>
<body οnlοad="load()">
<object id="plugin0" type="application/x-demo" width="300" height="300">
<param name="onload" value="pluginLoaded" />
</object><br />
<a href="#" οnclick="javascript:pluginValid()">Click me!</a> <br />
<a href="#" οnclick="javascript:addTestEvent()">Activate click counter</a> <br />
<a href="#" οnclick="javascript:testEvent()">Fire a test event</a> <br />
</body>
</html>
由于我是第一次接触javascript脚本,所以需要考虑一下。
1. <body οnlοad="load()">
load()这个js脚本在整个页面被加载后调用。
2.<param name="onload" value="pluginLoaded" />
这里面的onload在插件被加载后调用。
3. <a href="#" οnclick="javascript:pluginValid()">Click me!</a> <br />
当你点击此超链接时,会调用javascript脚本。
其中:plugin().echo("This plugin seems to be working!")会调用
FB::variant demoAPI::echo(const FB::variant& msg)
{
static int n(0);
fire_echo("So far, you clicked this many times: ", n++);
// return "foobar";
return msg;
}
返回你给的字符串“This plugin seems to be working!“
其中: plugin.test()会调用
void demoAPI::testEvent()
{
fire_test();
}
这样就很简单了。。
参考:
1. http://blog.csdn.net/z6482/article/details/7486921
2. http://blog.csdn.net/luoweifu/article/details/44603645
3. http://bbs.kafan.cn/thread-1726111-1-1.html