【发布时间】:2015-01-06 21:49:59
【问题描述】:
我正在尝试从 Mozilla Firefox 获取活动标签标题和 URL。我手动安装了 Firefox 扩展并创建了一个 C# windows 类库应用程序来获取活动标签标题和 url。
首先我安装了 Firefox 扩展,其中包含 package.json、main.js、install.rdf 等文件。下面是我的代码。
main.js
// import js-ctypes
var {Cu} = require("chrome");
var {ctypes} = Cu.import("resource://gre/modules/ctypes.jsm", null);
var self = require("sdk/self");
var tabs = require("sdk/tabs");
var button = require("sdk/ui/button/action").ActionButton({
id: "style-tab",
label: "Style Tab",
icon: "./icon-16.png",
onClick: function() {
// Open the library
var winffAddonewdl;
try
{
// Linux
winffAddonewdl = ctypes.open("filename.dll");
}
catch (e)
{
// Most other Unixes
winffAddonewdl = ctypes.open("filename.dll");
}
//alert(tabs.activeTab.url);
// Import a function
var OpenStandardStreamIn = winffAddonewdl.declare("OpenStandardStreamIn", // function name
ctypes.default_abi, // call ABI
ctypes.int, // return type
ctypes.char.ptr, // argument type
ctypes.char.ptr); // argument type
var ret = OpenStandardStreamIn(tabs.activeTab.title, tabs.activeTab.url);
winffAddonewdl.close();
}
});
借助以下链接 (1) https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Installation,我使用附加 SDK 开发了我的附加组件 (2)https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Getting_started 我的插件安装成功了。
我还创建了用于安装我的加载项的注册表项,并且我的加载项也已成功安装,并在我单击图标时显示当前 URL 和标题。
现在,我只想在切换到不同的 firefox 选项卡或 firefox 窗口时从 Firefox 浏览器获取 Title 和 URL。我开发了一个 c# windows 类库应用程序,通过它我可以获得这个活动的标签标题和 URL。
现在我的问题是如何执行这个 windows 类库应用程序并通过本机消息传递从 JS 文件中获取标题和 URL。我必须运行 Windows 类库应用程序吗?即使我无法在我的 Windows 类库应用程序中接收标题和 URL
我现在应该做什么。请在这方面帮助我。
编辑
我在 main.js 文件中编写了这个简单的代码。下面是我的代码
var tabs = require('sdk/tabs');
tabs.on('activate', function(tab) {
console.log('active: ' + tab.url);
});
我的插件安装成功,但是当我切换到不同的 Firefox 选项卡或窗口时,浏览器控制台上没有任何内容,除了 tab-events.js 中的“未找到元素”或“内容为空”。
我只想记录活动标签的网址。该怎么做?
等我解决上述问题后,我会讨论原生部分。
【问题讨论】:
-
对我来说看起来不错,当您执行
var ret = OpenStandardStreamIn(tabs.a...时,浏览器控制台会抛出什么? -
当你做 ctyoes.open('filename.dll') 你必须使用完整路径所以像
ctypes.open(self.data.url('filename.dll')) -
@Noitidart,感谢您的回复。一旦我完成这个简单的部分,我稍后会来到 Native 部分。请参阅编辑部分。
-
编辑是一个 firefox-addon-sdk 问题我不确定,在那个部分发布会更好,因为这个主题现在提出了两个单独的问题。
标签: firefox-addon extension-methods c#-2.0 firefox-addon-sdk jsctypes