如何打开一个弹出窗口对话框时,点击上下文菜单在crossrider
How to open a popup window dialog box when clicked on the context menu in crossridder ?
我已经成功创建了一个扩展,我正在使用extension.js中的警报,当他单击上下文菜单时,向用户显示最终消息,但我想要使用js和html创建一个自定义的弹出窗口对话框,而不是javascript警报。
请帮助我怎么做。我的扩展适用于网页上的链接。当右键被点击时,它显示上下文菜单,当点击时,它抛出警告,但我想显示一个漂亮的弹出消息
关键是理解代码运行的范围。上下文菜单在后台作用域中运行,不能直接访问活动页面的DOM。因此,要实现一个解决方案,您必须将信息从后台作用域传递到扩展的页面作用域,并在该作用域中创建自定义弹出窗口或使用Crossrider的通知插件。
下面的例子演示了使用通知插件的实现:extension.js :
appAPI.ready(function($) {
// Handler to receive messages
appAPI.message.addListener(function(msg) {
if (msg.type === 'show-notification')
showNotification(msg.notification);
});
function showNotification(data) {
// You can replace the notifier with your own custom code
appAPI.notifier.show({
'name':'my-notification-name',
'title':data.title,
'body':data.body,
'link':'http://example.com',
'theme':'default',
'position':'top-right',
'close':true,
'sticky':false,
'width':'400px',
'closeWhenClicked':true
});
}
});
重要的:不要忘记添加通知插件到扩展。
background.js :
appAPI.ready(function($) {
appAPI.contextMenu.add(
"CustomMI",
"Custom menu item",
function (data) {
// Send message to active tab when context menu item selected
appAPI.message.toActiveTab({
type: 'show-notification',
notification: {
title: 'Context Menu Item',
body: '<b>Veiwing page</b>: '+data.pageUrl
}
});
}, ["all"]
);
});
[披露:我是Crossrider员工]
相关文章:
- 将函数的上下文应用于javascript变量
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 使用JQuery的动态上下文菜单
- 如何访问UIWebView'的子窗口上下文
- JQuery在单击正文时隐藏上下文菜单
- JQuery上下文菜单显示/隐藏问题
- 如何从HTTP上下文对象中获取Post数据
- HTML字符串作为上下文
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 丢失对象“;这个“;方法中的上下文
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- d3防止在上下文菜单上触发mouseout
- 是否可以在不更改上下文的情况下调用函数.apply
- 调用$.each()函数时上下文发生变化
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- File Upload事件上下文和javascript
- 使用JSTree上下文菜单捕获新创建的节点
- 如何打开一个弹出窗口对话框时,点击上下文菜单在crossrider