- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个简单的词典插件,它允许用户突出显示一个词(通过双击它),这将导致出现一个显示该词的词典定义的弹出窗口。
我无法动态更改我正在使用的页面 worker 的 ContentURL,以便我可以访问它的 DOM 并从中抓取定义。我尝试过动态更改单个页面 worker 的 URL,以及每次选择一个新词时创建一个页面 worker ,将信息发送到插件,然后销毁页面 worker 。
这是我的代码(第二个想法):
定义.js:
$(window).dblclick(function() {
var selected = getSelected();
if (selected!="") {
calldictionary(selected);
var completedURL = "http://www.dictionary.com/browse/" + selected;
$('#define').dialog("open");
createPageWorker(completedURL);
}
});
function getSelected() {
if (window.getSelection) {
return window.getSelection().toString();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
定义发送器.js:
var sendInformation = "var elements = document.querySelectorAll('div.def-set > div'); " +
"for (var i = 0; i < elements.length; i++) {" +
" postMessage(elements[i].textContent) " +
"}" +
"self.destroy();";
function createPageWorker(URL){
dictionaryReference.Page({
contentScriptWhen: "ready",
contentScriptFile: [
data.url("jquery.js"),
data.url("jquery-ui.min.js"),
data.url("define.js"),
data.url("definitionsender.js")
],
contentURL: URL,
contentScript: sendInformation,
onMessage: "function(message){"+
"console.log(message);}"
});
}
如果我使用我的第一个想法,这条线
createPageWorker(completedURL);
将替换为行
dictionaryReference.contentURL = completedURL;
到我的 index.js 文件中包含的页面 worker “dictionaryReference”。
请不要简单地发布指向 MDN 的链接;我已经通读了所有相关文档,但没有给我太多指导。
最佳答案
来自 https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts (请原谅我发布 MDN 文档 ;-)):
- the add-on's main code, including "main.js" and other modules in "lib", can use the SDK high-level and low-level APIs, but can't access web content directly
- content scripts can't use the SDK's APIs (no access to globals exports, require) but can access web content
似乎您正在尝试从 define.js
访问 createPageWorker()
,这似乎是一个内容脚本。关注点分离禁止这样做。交流的方式是使用类似
self.port.emit("createPageWorker", URL);
在内容脚本中,通过
收听该消息self.port.on("createPageWorker", function(URL) {
// do something here
);
在附加代码中(index.js
或其他)。
关于javascript - 如何动态更改 Firefox 附加组件的页面 worker 的 ContentURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044554/
阅读official documentation关于 adMob contentURL 参数,不清楚传递 URL 的目的是什么。 文档说: Content URL Applications that
我正在使用 Erik Vold 的工具栏按钮。我有一个固定在上面的面板。当在面板中呈现的 html 静态页面上单击其中一个链接时,我需要在同一面板中显示其他内容。 我正在尝试使用端口 API 在插件代
我尝试将视频分享到我的应用程序。它收到了通知,但没有 contentUrl 来加载视频。以下是通知中的附件字段: attachments: [{contentType: 'video/mp4', 'i
我正在使用 addon-sdk 构建 Firefox 插件。 该插件有一个按钮,单击后会显示一个面板。该面板有一个运行它的内容脚本。现在,我需要面板根据用户当前的选项卡看起来有所不同,并且偶尔显示外部
当我单击小部件图标时,如何使用 contenturl 刷新面板?我的代码很简单: var data = require("sdk/self").data; exports.main = fun
我尝试使用 MPMoviePlayerController 播放视频。设置是:我推送一个新的 ViewController,然后在 viewDidLoad 中设置 View 和电影播放器实例,然后
简而言之,我的应用程序正在这样做: 1)当我点击它时,我的主 View (RootViewController)有一个按钮,它显示播放器(PlayerViewController): 2)在我的播放器
我在 loadView 方法中创建了一个嵌入式 MPMoviePlayerController: self.moviePlayerController = [[[MPMoviePlayerContro
我正在做一个 iPad 项目,我必须一个接一个地流畅地播放短视频文件。为了播放我正在使用的视频 MPMoviePlayerController .我面临的问题是当我打电话时 [self.moviePl
当我检索时间线项目时,它显示有附件和正确的内容类型,但 ContentUrl 为空,为什么?我还尝试获取 timelineResource.GetRequest 并将 Alt 更改为“媒体”,但它返回
我正在开发一个简单的词典插件,它允许用户突出显示一个词(通过双击它),这将导致出现一个显示该词的词典定义的弹出窗口。 我无法动态更改我正在使用的页面 worker 的 ContentURL,以便我可以
我希望你能帮助我,我正在尝试使用 Bing 图像搜索 API,到目前为止一切都很好,只有一件事我不明白,contentURL 是一个重定向,哪里应该是图像 url从源网站至少这就是文档所说的(以及搜索
我在我的应用程序中使用 facebook 版本 4.14,以便使用 ShareLinkConent 与 Imageurl 和 Contenturl 一起共享 Hashtag。现在Hashtag已经成功
注意:请参阅底部的更新。 我有一个应用程序可以从列表中一个一个地播放视频。因此,为了测试此功能,我创建了一个只有一个 View Controller 的简单应用程序。我在实现 this 之前引用了此博
指令 app.directive('PanelbarDirective', function ($http) { return { restrict: "EA",
我是一名优秀的程序员,十分优秀!